2017-02-13 13 views
1

我目前使用這個對我的.tmux.confTMUX整個面板用vim的鍵綁定在複印模式下同時移動

bind -n C-h if "[ $(tmux display -p '#{pane_current_command}') = vim ]" "send-keys C-h" "select-pane -L" 
bind -n C-j if "[ $(tmux display -p '#{pane_current_command}') = vim ]" "send-keys C-j" "select-pane -D" 
bind -n C-k if "[ $(tmux display -p '#{pane_current_command}') = vim ]" "send-keys C-k" "select-pane -U" 
bind -n C-l if "[ $(tmux display -p '#{pane_current_command}') = vim ]" "send-keys C-l" "select-pane -R" 

這讓我只要按:CTRL + [hjkl]我可以像移動在VIM(左,下,上,右),但同時TMUX進入複印模式:

CTRL + b + [

我綁定停止工作,如果我想搬到我需要使用箭頭鍵:

CTRL + b +箭頭鍵

任何想法關如何保持綁定在工作VIM複製模式還是讓它們在任何模式下都是永久使用?

我想在複製模式下移動面板,不要混淆這與試圖複製文本vim-like。

回答

3

我有同樣的問題。這似乎是tmux 2.4的一個問題。您可以在前一個響應中提到的插件(https://github.com/christoomey/vim-tmux-navigator/issues/159)上查看此問題。

總之,只是添加到您的.tmux.conf

bind-key -T copy-mode-vi C-h select-pane -L 
bind-key -T copy-mode-vi C-j select-pane -D 
bind-key -T copy-mode-vi C-k select-pane -U 
bind-key -T copy-mode-vi C-l select-pane -R 
bind-key -T copy-mode-vi C-\ select-pane -l 
+0

謝謝,這爲我解決了一個很大的生產力問題。我不得不在上面的命令中刪除前面的'tmux',這樣才能工作。 – Noah

0

這部分內置於tmux中,並且有一些鍵綁定,您可以獲得大多數vim密鑰。

# turn on vi key mode 
setw -g mode-keys vi 

# bind v, y, Escape keys in vi-copy mode 
bind -t vi-copy v begin-selection 
bind -t vi-copy y copy-selection 
bind -t vi-copy Escape cancel 

# bind <prefix> + p to "paste" 
unbind p 
bind p paste-buffer 

現在當你進入複製模式,你可以使用vim鍵來移動光標並進行選擇/複製工作。

h,j,k,l - movement of cursor 
C-b  - page up 
C-f  - page down 
0,$  - start or end of current line 
v  - enter select mode 
V  - enter line-based select mode 
y  - yank current selection into copy buffer 
Escape - cancel copy mode 

此外,一旦出副本模式下,<prefix + p上面結合將允許您使用<prefix> + p粘貼複製緩衝區。

+0

在副本模式我想繼續在板移動,不要選擇/複製,剛剛獲得赴面板上的左/右/上/底部等。 – nbari

0

I'm使用插件窗格之間進行導航:

https://github.com/christoomey/vim-tmux-navigator

這個插件的作者使用這個片段在〜/ .tmux.conf

# Smart pane switching with awareness of Vim splits. 
# See: https://github.com/christoomey/vim-tmux-navigator 
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ 
    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" 
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" 
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" 
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" 
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" 
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" 

這對我的作品也在tmux複製模式下

+0

在複製模式下,我只是在同一個面板內向左,向下,向上移動,基本上就像我在哪裏橫過文本,但不能在面板內移動/切換,我需要按順序退出複製模式切換面板。 – nbari

相關問題