tmux vim 搭配食用味道更佳

警告
本文最后更新于 2023-05-28,文中内容可能已过时。

通过配置 tmuxvim 的组合键,可以使用一套统一的快捷键来操作二者。

  • ctrl-j
  • ctrl-k
  • ctrl-h
  • ctrl-l
  • prefix: ctrl-space
  • <prefix> ctrl-l

tmux 设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## vim ~/.tmux.conf

## 安装 vim-tmux-navigator: <prefix>-I
set -g @plugin 'christoomey/vim-tmux-navigator'

## 设置 <prefix>
#-- bindkeys --#
# prefix key (Ctrl+Space)
set -g prefix ^Space
unbind ^b
bind Space send-prefix

## 设置快捷键
## vim-tmux ------------------------------------------------------------------
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"

is_fzf="ps -o state= -o comm= -t '#{pane_tty}' \
  | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?fzf$'"

bind -n C-h run "($is_vim && tmux send-keys C-h) || \
                          tmux select-pane -L"
bind -n C-j run "($is_vim && tmux send-keys C-j)  || \
                         ($is_fzf && tmux send-keys C-j) || \
                         tmux select-pane -D"
bind -n C-k run "($is_vim && tmux send-keys C-k) || \
                          ($is_fzf && tmux send-keys C-k)  || \
                          tmux select-pane -U"
bind -n C-l run  "($is_vim && tmux send-keys C-l) || \
                          tmux select-pane -R"
## clear terminal Ctr-x
bind-key -n C-x if-shell "$is_vim" "send-keys C-l"  "send-keys C-l"
## clear terminal <prefix> Ctrl-l
bind C-l send-keys 'C-l'

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

vim 设置

1
2
3
4
5
6
7
8
" vim-tmux -------------------------------------------------------------------
Plug 'christoomey/vim-tmux-navigator'
let g:tmux_navigator_no_mappings = 1

noremap <silent> <c-h> :<C-U>TmuxNavigateLeft<cr>
noremap <silent> <c-j> :<C-U>TmuxNavigateDown<cr>
noremap <silent> <c-k> :<C-U>TmuxNavigateUp<cr>
noremap <silent> <c-l> :<C-U>TmuxNavigateRight<cr>

相关内容

william 支付宝支付宝
william 微信微信
0%