9

我想以vim类似于我在tmux.

使用我的tmux绑定(形式为bind -r J resize-pane -D 5,其中-r用于重复)我可以做到,这与's<C-b>JJJ的键数和效果相同,但思考的次数要少得多,因为我可以移动拆分直到它看起来正确,而不是决定提前一些行/列。vim15<C-w>+

另一个例子:我希望能够按下<C-w>++++--,并让它执行与按下相同的动作<C-w>+<C-w>+<C-w>+<C-w>+<C-w>-<C-w>-。(尽管我可能想再次重新映射它以每次移动 5 行/列而不是 1)。

vim绑定中是否可以使用这种重复/超时模式?

4

1 回答 1

8

这是一个棘手的问题,但我将分享我的处理方法,因为我认为它比<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。这是meta+x在 Linux 上的 bash 中使用所必需的。现在,在这两个操作系统中,我都可以按住Althjkl调整拆分大小的键,包括按住,比如说,Alt+h水平缩小我所在的拆分。它们也适用于计数。

于 2013-05-17T02:21:07.090 回答