Tmux'ta fare ile eski kopyala yapıştır davranışına geri dönme


111

Bu, tmux'ta kopyala-yapıştır yapmak için yaptığım şeydir (fareyi kullanarak, klavye farklı çalışıyor ve benim ilgilendiğim şey bu değil):

  1. Fareyle metni seçin, sol düğmeye basılır
  2. Metni orta düğmeyle yapıştırın

İşletim sistemimi yükselttim ve bu yeni bir tmux sürümü aldı. .tmux.confYapılandırma dosyamı değiştirmedim .

Bu benim güncel sürümü ile ne ilgisi var ne tmux, 1.6(en son CrunchBang linux ambalajlı önceden gelir):

  1. Fareyle metni seçin, sol düğmeye basın ve shift tuşu
  2. Metni orta düğmeyle yapıştırın
  3. Terminal bloke edildiğinde, bir küçük bilgi alanı mevcut bölmenin sağ üst köşesinde bazı numaralar gösterir (yani [0/24], muhtemelen kaç karakterin yapıştırıldığına ilişkin bir şey), bu benim için çok az şey ifade ediyor ve ihtiyacım yok / istemiyorum (düzenle: görünüyor copy-mode) burada otomatik olarak girilir
  4. Ben basın zorunda qtekrar işlevsel terminali almak için anahtar.

Bu, günde onlarca kez yaptığım bir şey için çok zahmetli. Eski mekanizma nasıl tekrar çalışır?


2
Benim terminalde st, Shift+ MouseMiddlegeleneksel davranış gibi Xselection yapıştırır. FWIW, MouseMiddlebir değiştirici olmadan hiçbir şey yapmaz.
nabin-info

Yanıtlar:


84

Varsayılan kopyala / yapıştır yapılandırmasını geri yüklemek için tmux içinde (en azından geçici olarak) fare desteğini kapatmanız gerekir:

prefix : set -g mouse off

prefixTmux erişim anahtarı nerede ( yeniden eşleştirmediğiniz sürece varsayılan olarak Ctrl+ B). :komut modunu başlatır ve set -gparametreyi global olarak ayarlar.

Fare modu kapatıldığında, işletim sisteminiz tarafından sağlanan standart kopyalama / yapıştırma işlevleri beklendiği gibi çalışır.

Yapmak isteyebileceğiniz başka bir şey, mevcut bölmeyi 'büyütmektir', böylece birden çok satırı kolayca kopyalayabilirsiniz.


Tmux'un eski (2.1 öncesi) bir sürümüyle çalışıyorsanız, bunun yerine aşağıdakileri kullanmanız gerekir:

prefix : set -g mode-mouse off

Tüm bunları otomatikleştirmek için burada daha fazla ayrıntı ve bazı kullanışlı tuş bağlantıları var:

http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Yukarıda bağlantısı verilen makalenin ana fikri, .tmux.conf'dan alınan şu alıntıdır:

# disable mouse control by default - change 'off' to 'on' to enable by default.
setw -g mode-mouse off
set-option -g mouse-resize-pane off
set-option -g mouse-select-pane off
set-option -g mouse-select-window off
# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
# set mouse off with prefix M
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'
# zoom this pane to full screen
bind + \
    new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
    swap-pane -s tmux-zoom.0 \;\
    select-window -t tmux-zoom
# restore this pane
bind - \
    last-window \;\
    swap-pane -s tmux-zoom.0 \;\
    kill-window -t tmux-zoom

13
Tmux 1.8 veya daha yenisine sahipseniz, mevcut bölmenin yakınlaştırılmış durumunu değiştirecek yerleşik bir komut olan Control-B z vardır. Bu bölmeyi tam ekrana yakınlaştırmak için CB z, geri yüklemek için aynı komut yeniden. Bu, yukarıdaki konfigürasyonun sonunda CB + ve CB - tuş dizilerini tanımlama ihtiyacını ortadan kaldırır.
dr-jan

9
Tmux 2.1 veya daha yenisine sahipseniz, fareyle ilgili tüm komutların yerine her şeyi ayarlayan 'fare' ile değiştirilmiştir. Bu nedenle, varsayılan olarak fare modunu devre dışı bırakmak için 'setw -g mouse off' seçeneğini kullanın. "Fare modu", "fareyi yeniden boyutlandırma bölmesi", "fare seçme bölmesi" veya "fare seçme penceresi" ile ilgili tüm referansları kaldırın.
dr-jan

50
Ancak, fare modunun açık olmasının avantajları vardır: kaydırmama izin verir. Terminalimi normal bir terminal terminali gibi kullanmama izin veren bir ayar kombinasyonu var mı? Kopyala / yapıştır ve kaydırma dahil mi?
Mihai Danila

1
Uğraştığım başka bir ayar var mı, çünkü açık OSx (Sierra), optionyardımcı olmuyor. Döndürmek mode-mouse offnormal gibi seçim yapmama izin veriyor, ancak sonra panoya kopyalayamıyorum ( cmd+Cveya cmd+shift+Chiçbir şey yapamıyorum, bir hata zilini
çalamıyorum

3
Tmux v3 ile test edildi, açıp kapatmak için bir bağlantı:bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
Evgeny

249
  1. Metni kopyalayın: Metin ve basın fare seçmek left-buttonile shiftçok tuşa basıldıktan.
  2. Metni shift+ tuşu ile yapıştırınmiddle-button

30
OSX kullanıcıları için bu, bu blog gönderisinde açıklandığı gibi seçenek anahtarıdır: awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse
pangratz

3
Aslında, Shift + LMB ile metin seçtikten sonra, X11 olmayan panoya kopyalamak için işletim sistemi işlevini (benim durumumda Ctrl-Shift-C) kullanabilirsiniz.
Eugene Pankov

8
OP, klavyeyi kullanmadan fareyle kopyalayıp yapıştırmak istediklerini açıkça belirtir. Shift(Veya OSX'te seçenek tuşuna) basmak kitaptaki en eski numaradır ve çoğu öykünücü üzerinde çalışır, ancak orijinal soruyu yanıtlamaz.
Lqueryvg

1
@pangratz Seçenek anahtarını kullanmak iTerm kullanıcıları için işe yarayabilir, ancak yerel Terminal kullanıcıları için geçerli olmayabilir.
anishpatel

Bu geçici çözüm için teşekkür ederiz! Yine de yetersiz olsa da - fare tekerleği = geçmişi kaydırmak ve diğer tüm fare işlevleri = normal çok daha iyi olurdu.
Torsten Bronger

36

"-G modu-fareyi ayarla" ise şu numarayı yapabilirsiniz:

Mac'te "fn" düğmesine basın, ardından metni seçin ve fareyle sağ tıklama veya klavye cmd + c ile kopyalayın.


4
benim için, bu sadece fareyi kaydırmazsam işe yarıyor gibi görünüyor. fareyle
Paul

Ayrıca fn+Middle-Click
2019

10

Buradan değiştirildi - Ben orijinal xclipyerine kullanıyorum xsel:

bind -T root MouseDown2Pane run -b "xclip -o | tmux load-buffer - && tmux paste-buffer -s ' '"

Bu benim için neşeyle çalışıyor tmux 2.5-rc2


bu terminalde iyi çalışıyor, ancak
vim'e

9

<prefix>+mGeçiş fare modunu kullanın veya kapatın

bind m run "if [[ `tmux show-option -w | grep mode-mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mode-mouse \$toggle &> /dev/null; for cmd in mouse-select-pane mouse-resize-pane mouse-select-window; do tmux set-option -g \$cmd \$toggle &> /dev/null; done;"

Bu benim için mükemmel çalıştı. Çok teşekkürler. Fare modunda kaydırma yapabilmek istedim, ancak bu, metin kopyalama yeteneğimi bozuyordu. Bu, fare modunu devre dışı bırakmak istiyorsanız hızlı geçişe izin verir.
Bijan

6
Kullandığımbind m set-option mouse\; display-message "Mouse is now #{?mouse,on,off}"
Maxim Suslov

kullanıcı kopyalayıp yapıştırmak istiyor, daha fazla .tmux.conf özelleştirmesi değil!
Jack Wasey

6

Christian'ın örneğini Tmux 2 için çalıştırmak konusunda sorun yaşadım, sanırım bazı yazım hataları. Aşağıdakileri çalıştırdım ve okuması biraz daha kolay ve hem genel hem de pencere modunu ayarlıyor. hth birisi. yeni kullanıcı ve tmux harika!

bind m run "\
    tmux show-options -g | grep -q "mouse\\s*on"; \
    if [ \$? = 0 ]; \
    then  \
        toggle=off;  \
    else  \
        toggle=on;  \
    fi;  \
    tmux display-message \"mouse is now: \$toggle\";  \
    tmux set-option -w mouse \$toggle; \
    tmux set-option -g mouse \$toggle; \
    "

1
Benim için çalışıyor. Github'dan tmux HEAD'e karşı test edildi (dün itibariyle).
Lqueryvg

2
Bunun işe yaraması için show-optionsçizgiyi olarak değiştirmem gerekiyordu tmux show-options -g | grep -q "mouse\\s*on"; \ . Bunun nedeni, normal ifadenin nhdaly / tmux-better-mouse-modemouse.*on@scroll-in-moused-over-pane "on"
Mandy Schoep

1
Temelde aynı şeyi yapan daha basit bağlama -bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
Evgeny

6

Kullanıcıları için Mac + iTerm2 + tmux (sürüm> 2.1) :

set -g mode-mouse onTmux yapılandırmasında fare modunun ayarlandığından emin olun (Sadece ~ / .tmux.conf ekleyin ). Şimdi, bir bölme içindeki metni kopyalamak için:

  1. option + commandFare imlecini kullanarak kopyalamak istediğiniz metne basın ve seçin. Bir resmi kırpmak gibi.
  2. Seçilen metin otomatik olarak kopyalanacaktı (gerek yok command + c). Sadece her zamanki yöntemlerle yapıştırın.

5

Yves Blusseau nasıl çalıştığını anlamama yardımcı oldu, ancak makinemde ( Windows 10 çalıştıran ) davranış biraz farklıydı.

tmux 2.6

Etkin fare ile ( :set -g mouse on)

kopya

  1. Basılı tutun Shiftve farenizle kopyalamak istediğiniz metni seçin
  2. Şimdi seçili metni kopyalamak için sağ tıklayın (tutmadan Shift)

Yapıştırmak

  1. ShiftKopyalanan metni eklemek için basılı tutun ve sağ tıklayın

Bu kadar basit. Zevk almak!


En iyisi. Basit ve zarif.
zayıf

3

Bu, Kaixuan'ın yanıtının Tmux 2.1 ile uyumlu değiştirilmiş bir sürümüdür .

`bind m run "if [[ `tmux show-options -w | grep mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mouse \$toggle &> /dev/null;`"

Tüm mode-mouseseçenekler tek bir mouseseçenekte birleştirildi ve show-optionşununla değiştirilmeleri gerekiyordu:show-options


1
bunun tmux.conf'ta olması gerekiyor mu? ??
Arnold Roa

1
bu nereye gidiyor?
statquant

@ArnoldRoa @statquant: Evet, bu dosyaya girecek ~/.tmux.conf. Bu <prefix>+msatır içi betiği çalıştırmak için anahtarı bağlar .
inblueswithu

0

içinde ~/.tmux.conf:

set -g mouse off

sahip bind r source-file ~/.tmux.confolmak da yararlı olabilir, bu nedenle ctrl-d rörneğin yapılandırmayı yeniden yüklemek için yapabilirsiniz .


0

Burada yayınlanan diğer cevaplara dayanarak, (en azından) tmux 2.8 ve tmux 3.1 ile çalışan kısa bir çözüm oluşturdum .

Sen geçiş yapabilirsiniz tmux mouse supportbasarak kapamak ve prefix- M. Gelen .tmux.confdosyanın bu satırı ekleyin:

bind-key -T prefix m run "m=$(tmux show -g mou|grep -q on;echo $?);tmux set -g mou $m;tmux display mouse:\$m"

Bu mouse: 1etkinleştirildiğinde ve mouse: 0devre dışı bırakıldığında görüntülenecektir. Defalarca basarak prefix- Marasındaki fare modunu geçiş yapılır üzerinde ve kapalı .

Ayrıca bkz: tmux mouse desteği

DÜZENLEME: Bir komut returned 1hata mesajı görürseniz, bunun yerine tmux 3.1 veya tmux 3.2 için aşağıdakileri kullanmanız gerekecektir :

bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'

(bu çözüm daha önce bahsedilmişti)


-1

Farenin sol düğmesine basılıyken metni seçmek için aşağıdaki bağlamayı kullanıyorum -

bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "/mnt/c/Windows/System32/clip.exe"
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.