我希望在vim
中调整窗口大小,与我在tmux
中的方式类似。
使用我的tmux
绑定(bind -r J resize-pane -D 5
形式,其中-r
用于重复)我可以<C-b>JJJ
,这是相同数量的键和效果作为vim
的{{1}},但更少考虑,因为我可以将分割移动到看起来正确,而不是事先决定一些行/列。
另一个例子:我希望能够按下15<C-w>+
,并让它执行与按<C-w>++++--
相同的操作。 (虽然我可能想再次将其重新映射为每次移动5行/列而不是1)。
<C-w>+<C-w>+<C-w>+<C-w>+<C-w>-<C-w>-
绑定中是否可以使用这种重复/超时模式?
答案 0 :(得分:6)
这是一个棘手的问题,但我会分享我的处理方法,因为我认为它比<C-w>
方法更容易(我使用了很长时间,并且发现很麻烦):
" simplify resizing splits
if has('unix')
nnoremap ^[j <C-w>-
nnoremap ^[k <C-w>+
nnoremap ^[h <C-w><
nnoremap ^[l <C-w>>
else
nnoremap <M-j> <C-w>-
nnoremap <M-k> <C-w>+
nnoremap <M-h> <C-w><
nnoremap <M-l> <C-w>>
endif
必须用实际转义替换^[
个字符。按Ctrl+v
,然后按escape
,以插入模式创建它。这是在Linux上使用bash中的meta+x
所必需的。现在,在两个操作系统中,我可以按住Alt
和hjkl
键来调整分割大小,包括按住Alt+h
来水平缩小我所在的分割。他们也可以使用计数。
答案 1 :(得分:1)
也许这只是微不足道的,但你可以映射它:
nnoremap <f3> <C-w>-
nnoremap <f4> <C-w>+