Tmux ile bir fare ile nasıl kopyalanır ve yapıştırılır


44

tmuxVe OSX kullanıyorum . Terminalden kopyalayıp yapıştırırken tmuxtuşunu basılı tutabiliyorum Optionve metni seçebiliyorum. Ancak, metnin bölmenin içinde kalmasını sağlayamıyorum. Bu yüzden, metni kopyalamak istediğimde, bölmeyi en sol tarafa çevirmem ya da aşağıda gösterildiği gibi bölmeyi yakınlaştırmam gerekiyor.

Bu, Optionanahtarı basılı tutmak zorunda olmanın yanı sıra bir acıdır. Görsel moda girebileceğimi ve vim hareketlerini oraya ulaşmak için kullanabileceğimi biliyorum, ancak faremi kullanmak için bir yolum var. Herhangi biri bunun için bir geçici çözüm buldu mu?

görüntü tanımını buraya girin görüntü tanımını buraya girin


“Ancak metnin bölmenin içinde kalmasını sağlayamıyorum.” Bununla ne demek istiyorsun?
Blaszard

Yanıtlar:


36

Bu kod bloğunu içine koyun ~/.tmux.conf. Bu, fare entegrasyonunu sağlar, yakınlaştırmak zorunda kalmadan farenizle bir bölmeden kopyalamanıza izin verir.

set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -t vi-copy    C-WheelUpPane   halfpage-up
bind -t vi-copy    C-WheelDownPane halfpage-down
bind -t emacs-copy C-WheelUpPane   halfpage-up
bind -t emacs-copy C-WheelDownPane halfpage-down

# To copy, drag to highlight text in yellow, press Enter and then release mouse
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

Bundan sonra, tmux oturumunuzu yeniden başlatın. Bazı metni fareyle vurgulayın, ancak farenin gitmesine izin vermeyin. Şimdi metin stil vurgulanırken ve fareye basıldığında, geri dönüş tuşuna basın. Vurgulanan metin kaybolacak ve panoya kopyalanacaktır. Şimdi fareyi serbest bırak.

Bunun dışında, fareyle yukarı ve aşağı kaydırma, etkin bölmeyi seçme vb. Gibi fare ile yapabileceğiniz bazı harika şeyler de vardır.

MacOS'ta daha yeni bir tmux sürümü kullanıyorsanız , yukarıdaki yerine aşağıdakileri deneyin:

# macOS only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

MacOS'ta iTerm kullanıyorsanız, iTerm2> Tercihler> “Genel” sekmesine gidin ve “Seçim” bölümünde “Terminaldeki Uygulamalar panele erişebilir” seçeneğini işaretleyin.

Eğer Linux ve daha yeni bir tmux kullanıyorsanız, o zaman

# Linux only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

( Diğer birçok tmux seçeneği için https://github.com/gpakosz/.tmux adresini de kontrol edebilirsiniz .)


1
Sonunda gerçekten çalışan bir şey! Kopyalama ve yapıştırma, tmux'u denemede en can sıkıcı şey, daha önce bıraktım ve denediğim yapılandırma parçacıkları tutarsız davranıyorlardı, çok teşekkürler.
Breno Salgado

1
Mac'ta iterm kullanıyordum ve iTerm2> Tercihler> “Genel” sekmesini etkinleştirmem gerekiyordu ve “Seçim” bölümünde “Terminaldeki uygulamalar panoya erişebilir”. Referans: rushiagr.com/blog/2016/06/16/…
Rujoota Shah

@RujootaShah Evet, doğru. Bunu yapman gerek. Paylaşım için teşekkürler.
GMaster

1
Teşekkürler! Tıkır tıkır çalışıyor. Ben yüklemek için gereken sudo apt-get install -y xcliprağmen (Ubuntu Linux).
Petr

mükemmel çalışıyor, teşekkürler @ GMmaster
Luja Shrestha
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.