Panoya kopyala Tmux in El Capitan


19

El Capitan'daki Terminal değişikliklerinden oldukça memnunum (örneğin bu soruya bakınız ).

Ancak, Tmux içinden sistem panosuna kopyalamayı nasıl etkinleştireceğinizi anlayamıyorum. Örneğin, Tmux içindeki metni fare ile düzgün bir şekilde seçebildiğime göre, seçilen metni Tmux'un kendi arabelleğine ek olarak panoya da nasıl kopyalayabilirim?

Bende aşağıdakiler var tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Son satırı değiştirmeyi denedim

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

ama gerçekten işe yaramadı. Öneriler için minnettar olurum!

Teşekkürler!


Cmd-C çalışmıyor?
nohillside

1
@partix - hayır, kopyalanan metnin fare düğmesi (veya izleme dörtgeni) bırakıldıktan sonra otomatik olarak seçimi kaldırıldığı için. Tabii ki Terminal'de çalışıyor, ancak terminal içindeki Tmux'dan değil.
siphiuel

Tmux 2.1'e güncelleme, Tmux bölmelerinde fare kaydırmayı kırdı.
siphiuel

Yanıtlar:


27

Aslında, Cmd + C kullanarak kopyalamanın nasıl etkinleştirileceğini çok basit bir çözüm buluyorum.

Varsayılan olarak Terminal uygulaması Görünüm -> "Fare raporlamasına izin ver" seçeneğine gidin ve işaretini kaldırın. Bu kadar.

Not: Açıkçası, tmux'daki bölünmüş ekranı sürüklemek gibi yeni güzel özellikler fare raporunun işaretini kaldırdıktan sonra çalışmayı durduruyor.


Not: Daha önce iyi çalışan @siphiuel'in çözümünü kullandım.
Oplatek

1
Teşekkür ederim!!! Bu en basit yol! Sadece tarihin kırıldığını, tarihin sadece bir kısmını görebiliyorum
Sato

Süper güzel. Bu çalışıyor
ShikharDua

ve bu aynı zamanda uzak bir tmux oturumu için de çalışır; bind-key ... copy-pipeÇözümün sadece yerel bir tmux oturumu olduğunda işe yarayabileceğini düşünüyorum . Sonra yine, belki yerel bir tmux oturumu içinde uzak tmux oturumu yaparsanız, işe yarayabilir? Her neyse, "Fare raporlamasına izin ver" seçeneğinin işaretini kaldırmak benim için çalıştı ve bir kopya oluşturmak için hızlı bir şekilde kapatıp tekrar açabilmeniz için bir ⌘-R (Cmd-R) kısayolu bile var.
Aaron Wallentine

24

İTerm2 3.x kullanıyorsanız, aşağıdakileri etkinleştirerek kopyalama / yapıştırma işini yapabilirsiniz Applications in terminal may access clipboard:

resim açıklamasını buraya girin

OS X panosuna kopyalamak için metni farenizle vurgulamanız yeterlidir!

Ayrıca OS X panosundan normal Cmd+ ile tmux'a yapıştırabilirsiniz V.


2
bu benim için en kolay çözümdü.
lennart

Bu harika!
mljrg

17

Fonksiyon tuşunu basılı tutarsanız, apple + c ile de panoya kopyalayıp seçebilirsiniz.


Tek satırlık bir cevaptan başka bir şey arıyoruz. Daha ayrıntılı bilgi vermek için cevabınızı genişletmeyi deneyin.
Allan

2
@Allan Bu tek bir satır olmasına rağmen tam bir cevap. Bu kadar basit.
pkuhar

btw, sadece dizüstü bilgisayar klavyesinde çalışıyor, bağlı olmayan klavyeler
buldum

8

Aslında, copy-pipebunun işe yaramadığını belirlerken yanılmışım . Hem metni Tmux çalışma alanına kopyalar hem de boruları keyfi bir kabuk komutuna kopyaladığı için yapar ve copy-selectionsonra gereksizdir copy-pipe. Yani aşağıdaki satır çalışır:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Ancak, yfare düğmesini bırakmadan önce birinin basılması gerekir . Ben tmux-yank eklentisi belgelerinde tökezledi :

"Tmux mode-mouse açık veya mode-mouse kopyalama modunu kullanarak seçim yaparken, varsayılan 'kopyalamak için seçimden sonra fareyi serbest bırak' davranışına güvenemezsiniz. Bunun yerine fareyi bırakmadan önce y tuşuna basın."

Bu yüzden çalışır, ancak yfare ile seçilen metni kopyalamak için biraz sinir bozucu bir şekilde basmak gerekir .


3
Terminal.app: macOS Sierra'da kullanıyorsanız, Terminal.app davranışındaki gerileme nedeniyle bu çalışmaz. "Reattach-to-user-namespace" hackini tekrar kullanmanız gerekecek.
m1keil

1
@ M1keil için aynı fikirde. Dahası, bazı nedenlerden dolayı, bu gibi ek anahtarlarla yeniden kullanıcı-ad-alanı derlemek zorunda kaldım: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(Homebrew kullanıyorum)
siphiuel

4

Tmux sürüm 2.2 veya daha yenisini kullanarak tmux.conf dosyanıza aşağıdakileri ekleyin:

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

El Capitan 10.11, tmux 2.7 için çalışır
Homer

3

@Oplatek'in cevabı yürürlüğe girecek

Varsayılan olarak Terminal uygulaması Görünüm -> "Fare raporlamasına izin ver" seçeneğine gidin ve işaretini kaldırın.

Ancak bu şekilde, ekranı fare ile kaydıramazdık.

Devre dışı bırakmanın başka bir yolu Allow mouse reporting: tuşuna basın Fnve metni fare ile seçin.


0

Tmux 2.2, OS X El Capitan, Terminal Sürüm 2.6.1'i (El Capitan ile birlikte gelen varsayılan) kullanarak, aşağıdaki kurulum kusursuz çalışır (şimdiye kadar).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Kopyalamak için farenin sol düğmesine basın, metni işaretleyin ve bırakın. İşaretli metin panoya yerleştirilir ve her zamanki gibi Cmd+ ile yapıştırılabilir v.


-2

sadece bir yol buldum

terminal bilgilerini aç / terminal bilgisindeki profilleri terminal türünü xterm-256'dan ansi'ye değiştir Yeni terminal penceresini aç ve tadını çıkar :)

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.