.tmux.conf 'da (X panoya) kısayolu kopyala


22

Tmux'taki X panoya metin kopyalamak için şu anda yaptığım şey:

  • ile seçim moduna git prefix[
  • Seçimi ile başlatmak space( mode-keys vibtw kullanarak )
  • metni seçin ve enter
  • tmux tamponunu kullanarak X panoya kopyala prefixctrl+c

(Olarak bir eşlemem var bind C-c run "tmux show-buffer | xclip -selection clipboard -i"

Seçim modu için bir eşleme yaparak bu adımların bazılarını ortadan kaldırmaya çalışıyorum. Denedim:

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"

bana ve hata veriyor:

.. usage: bind-key [-cnr] [-t key-table] key command [arguments]

(Hatayı kopyalayamadım)

bunu nasıl düzeltebilirim?

EDIT: Fareyi normal bir seçim gibi kullanarak (ilk 3 adımda) tmux tamponunu seçip kopyalayabildiğimi fark ettim (vurgulama devam etmese de, metni seçer) ve sonra x panoya kopyalamak için aşağıdaki ciltlemeyi kullandım :

bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"

(Bu metni kopyalamak için bu yöntemi kullandım ve kolaydı;)

O notu -nO anlamına gelir "hayır öneki" dolayısıyla ihtiyaç vardır öncelenimin. gözden kaybolma vurgusu ile karıştırılmazsanız, bu normal (ortak kullanıcı arayüzü) kopyalamaya benzer.

Şimdiye kadar bulduğum en iyisi bu.

EDIT2: çıktı ctrl+cben değiştirildi böylece süreç kesme şeyle çakışmaları ctrl+alt+cşimdilik. (hoşuma gitmedi)

EDIT3: tmux 1.8 ya da öylesine kopya modunda tuş bağları eklemek için destek eklendi, böylece şimdi ilk orijinal amacım şu gibi bir şey kullanarak mümkün:

bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"

Bu iki ciltleme, kullandığımda metni panoya kopyalamayı enterveya ykopyalamayı bitirmeyi mümkün kılar .

Kopyalamayı fare ile yapıyorum ve tmux arabellek içeriğini daha sonra panoya almaya karar verdim diye hala bu satırı tutuyorum:

bind-key y run "tmux show-buffer | xclip -selection clipboard -i"

1
Ctrl-c ile stty kullanarak başka bir şey arasında kesmeyi değiştirebilirsiniz. Örneğin, Ctrl Z kullanımı: stty intr=^Z. Bu komutla dikkatli olun, kesme karakteri olarak normal bir karakter ayarlamak mümkündür (bunu yaparsanız, ayarı düzeltene kadar girmek için ctrl-v kullanın). Ve hangi anahtarın kullanıldığı konusunda kafanız karışmaz (örneğin, ctrl-z normalde askıya alma anahtarıdır).
kül

@ ash not edildi, teşekkürler .. ama sanırım ^ckopyalamadan daha sık kullandığım kadar kesme anahtarı olarak kalacağım . Ayrıca şu anki çözümümü bu soruna yansıtmak için cevabı da güncelledim.
yok,

kulağa iyi geliyor. Ayrıca, birçok xmodmap işleminin, düzeltilmesi zor olan şeyleri komik bir duruma sokabileceğini unutmayın, bu nedenle komutların etkisi yanlış görünüyorsa, yeni bir X oturumu ile yeni bir başlangıç ​​yapmanızı öneririm.
kül

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"canlı çalışan verir:Unknown command: run
Alexej Magura

1
Ancak, koşma bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"gayet iyi çalışıyor.
Alexej Magura

Yanıtlar:


13

Bu cevap, kısayol oluşturma hakkındaki sorunuzu doğrudan yanıtlamaz. Ama işte yaptığım şey bu.

Tuşlarını / fare olaylarını geçirerek geçici olarak askıya alabilirsiniz shift. Böylece, kopyayı yapmak için Shift tuşlarını ve kullanıcı terminal / X tuşlarına kısayollar basabilirsiniz. Benim durumumda Terminator kullanarak basarım, shiftistediğimi fare ile vurgularım, kopyalarım.Ctrl+Shift+C

Bölünmüş bölmeleriniz varsa, geçerli bölmeyi yakınlaştırma / geçiş tuşu ile yakınlaştırıp Prefix + zkopyalama işlemini gerçekleştirebilirsiniz. (tmux v1.8'de test edilmiştir)


Yatay bölmeler nedeniyle bunu kullanamadım ama yakınlaştırma numarası harika görünüyor, bahşiş için teşekkürler.
yok

Bu, gnome-terminalinde çalışır; fakat tüm terminal emülatörleri için de geçerli midir? Muhtemelen hayır
jpaugh

Wsl-terminalinde bu çalışır.
Günümü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.