Tmux bir şekilde bazı anahtar bağlantılardan sonra ön eki unutuyor


1

Varsayılan öneki değiştirmedim, yani C-b. Benim tmux.conf içinde aşağıdaki anahtar bağlayıcı ekledi

bind -n C-M-w send-keys M-w\; \
    run-shell "tmux save-buffer - | xclip -i -selection clipboard"

Temelde, kopyalama modu sırasında panoya da C-b [kopyalayabilmem gerektiğini istedim save-buffer. İyi çalışıyor ama sadece ilk defa. Ve bir kez idam edildikten sonra, bir şekilde sihirli bir şekilde prefixve diğer anahtar bağlantıları da çözer. Bunu neden yaptığını bilmiyorum.

Aşağıdaki gibi oldukça basit tmux config var:

# 0 is too far from ` ;)
set -g base-index 1

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000

setw -g mode-keys emacs
setw -g mode-mouse on
setw -g monitor-activity on

bind-key v split-window -h
bind-key s split-window -v

bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5

bind-key M-j resize-pane -D
bind-key M-k resize-pane -U
bind-key M-h resize-pane -L
bind-key M-l resize-pane -R

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D 
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard"\; \
     set -g prefix 'C-b'

# No delay for escape key press
set -sg escape-time 0

# Reload tmux config
bind r source-file ~/.tmux.conf

Yanıtlar:


4

Sadece değiştir

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard"\; \
     set -g prefix 'C-b

ile

bind -n C-M-w send-keys M-w\; \
     run-shell "tmux save-buffer -  | xclip -i -selection clipboard >> /dev/null "\; \
     set -g prefix 'C-b

Bu sorunu çözdükten sonra / dev / null kullanmanızı öneren Severyn Kozak'a teşekkürler

Bazı komutlarda, xclip gibi çıktı döndürmeyen ya da çıkış durumunu döndürmeyen bu yüzden sorunu / dev / null dizinine yeniden yönlendirmek, yapıştırma arabelleğinden panoya kopyalamak için yeterli olacaktır.

Neden Send tuşlarını kullanıp önek komutlarını kullandığınızı anlayamadım, ancak tmux 1.8+ için seçili metni arabellek ve panoya yapıştırmak için kopyalamak yerine copy-pipe komutunu kullanmalısınız.

Bu cevaptan emacs-mode kullanarak kopyala ve yapıştır yöntemi :

bind-key -n -t emacs-copy M-w copy-pipe "xclip -i -sel p -f | xclip -i -sel c "
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"

Vi modunu kullanarak "önek C- [kopya moduna girmek için >> v> metni vurgulamak için >> y hem metni yapıştırın tampon arabasına hem de panoya kopyalayın >> ön yapıştırma p" yapıştırın:

set -g mode-keys vi
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-pipe "xclip -i -sel clip"
bind p paste-buffer
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.