以另一种方式在VIM窗口之间导航

Ada*_*das 30 vim keyboard-shortcuts

CtrlW用来在VIM拆分窗口之间导航.有没有不同的方法来做到这一点?

例如,如果我有5个分割窗口打开并想要导航到左上角窗口,CtrlW则非常不舒服,因为它需要很多击键.

Roo*_*ook 42

为什么不设置这样的东西?

nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
Run Code Online (Sandbox Code Playgroud)

更快......

  • 我有`nnoremap <cr> <cw> w`,因为我从不在正常模式下使用返回键.然后很容易循环分裂. (3认同)

ske*_*ept 18

您可以使用<number><c-w>w切换到特定窗口.所以1<c-w>w第一个窗口(左上角) 11<c-w>w移动到最后一个窗口(这里我假设你有少于11个分割).

我还发现以下映射很方便,并将它们放在我的.vimrc中

nnoremap <tab> <c-w>
nnoremap <tab><tab> <c-w><c-w>
Run Code Online (Sandbox Code Playgroud)

我用于窗口拼接(出于某种原因,如果我没有定义第二个映射,如果我按Tab键两次,我得到一条消息"光标下没有标识符)

阅读CTRL-W帮助页面,甚至还有一个更便捷的方式比 1<c-w>w11<c-w>w去第一和最后一个窗口: <c-w>t去上面的窗口,并<c-w>b进入到下面的窗口.


Ale*_*ros 5

您可以使用 nnoremap在 vimrc 中命令来使用自定义键绑定。

的语法nnoremap是这样的:

nnoremap new_keybinding keystrokes
Run Code Online (Sandbox Code Playgroud)

nnoremap 命令分配一个新的键绑定,当你在正常模式下按下它时,分配给这个命令的按键序列会回显到 Vim。

编辑:还有nmap命令。两者之间的区别在于nmap允许覆盖您当前的键绑定,而nnoremap不允许。这个答案中解释了它们之间的区别

例如,我将这些行放在我的.vimrc

"Better window navigation
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-h> <C-w>h
nnoremap <C-l> <C-w>l
Run Code Online (Sandbox Code Playgroud)

这允许我使用Ctrl+j, Ctrl+k, Ctrl+h,Ctrl+l而不是Ctrl+W j, Ctrl+W k, Ctrl+W h,Ctrl+W l进行窗口导航,同时保留旧的键绑定。

您也可以查找:help key-mappings更多信息。