Fare seçimi ile Tmux kopya borusu


5

Kullandığım copy-pipetmux 1.8 ile sistem panosunu paylaşmak için OS X üzerinde:

unbind -t vi-copy Enter
bind -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"

Bu, seçilen moda girildiğinde ve metin kopyalanırken (metni seçtikten sonra vurulur Enter) çalışır, ancak fareyle metin seçildiğinde değil. Fare seçiminden sonra, tıpkı copy-pipevurduktan sonra yapılanlar gibi çalıştırılacak bir komut ayarlamak mümkün müdür Enter? Yani reattach-to-user-namespace pbcopyseçim bırakıldığında kaçmam gerekiyor .

Yanıtlar:


3

Fare tarafından başlatılan bir seçimi sonlandıran "fare yukarı" davranışını özelleştirmek için yerleşik bir yöntem yoktur. Ayrıntılar için bkz etiketi içinde yer (bağlantılar kaynağına olan tmux 1.8); Özellikle, bu kod parçasındaki pencere, oturum veya sunucu seçeneklerine referans yoktur.reset_modewindow_copy_mouse()window-copy.c

Bir geçici çözüm var, ancak büyük olasılıkla biraz fazladan bir durum:

  • copy-pipeFare düğmesini bırakmadan önce bağlayıcınızı etkinleştirin (örn. Enter tuşuna basın).
    Bu, kabuk komutunuzu çalıştıracak, seçimi bir ara belleğe kopyalayacak ve kopyalama modundan çıkacaktır (yani, normal davranış için copy-pipe).

Yine de küçük bir yan etkisi var:

  • Sonunda düğmeyi bıraktığınızda terminalinizin göndereceği fare olayı, tmux'un kopya moduna tekrar girmesine neden olacaktır . Bu "ekstra" kopyalama modundan manuel olarak çıkmanız (örn. Escape veya Cc) gerekir.
    Bu muhtemelen bir hata olarak kabul edilebilir ( input_mouse()yeni bir kopyalama moduna başlamadan önce fare olayının “düğmeli” bir olay olduğunu kontrol etmez); ancak, çoğunlukla zararsızdır (ikinci kopya modu örneğinden çıkma zorunluluğunun dışında).

Ayrıntılı açıklama için teşekkür ederim, bence bu mükemmel bir cevap! Belki bunun için bir özellik isteği gönderirim.
Patrick Oscity

Fare seçiminin bu şenanvanların hiçbiri olmadan çalışması mümkündür. İTerm 2, OSX Mavericks ve tmux 1.8 kullanıyorum ve tmux'ta seçtiğim herhangi bir metin (gerçek tmux seçimi, terminal seçimi değil) sistem panosuna kopyalanıyor. Ne yazık ki, makinelerimden biri üzerinde çalışıyor, diğeri değil (her şeyin aynı sürümleri) ve hayatım boyunca nedenini çözemiyorum ... ama bu mümkün. Her ikisinde de nasıl çalışacağına karar verdikten sonra config'imi gönderirim.
Jim Stewart,

@Chris: Yukarıda bahsettiğin hatanın 1.9'da sabit olup olmadığını biliyor musun?
Behrang

@ Burang: Davranış 1.9a sürümünden itibaren değişmemiş görünüyor.
Chris Johnsen

1
@muffel: Doğru, 2.0 bunu değiştirecek gibi görünmüyor; bu özel davranışı değiştirecek olan 2.1 (halen geliştirilme / yayınlanmadı).
Chris Johnsen

8

Tmux 2.2 ve sonrası için:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

1
Mac OS altında Sierra, reattach-to-user-namespacebir kez daha pbcopytmux için gerekli . bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "reattach-to-user-namespace pbcopy" github.com/ChrisJohnsen/tmux-MacOSX-pasteboard
Theron Luhn
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.