在vim拆分窗格之间导航的更简单方法

在vim拆分窗格之间导航的更简单方法,vim,navigation,Vim,Navigation,我在vim上使用NERDTree,通常使用I 有没有一种在不同窗格之间切换的简单方法?目前我使用CTRL+W+W从一个窗格移动到另一个窗格 很久以前,我发现了一个我一直坚持的方法(曾经在vim.org上,现在显然在wiki上)。重新映射ctrl-[hjkl]以导航拆分。这对我有好处 " Use ctrl-[hjkl] to select the active split! nmap <silent> <c-k> :wincmd k<CR> nmap <s

我在vim上使用
NERDTree
,通常使用
I

有没有一种在不同窗格之间切换的简单方法?目前我使用
CTRL+W+W
从一个窗格移动到另一个窗格

很久以前,我发现了一个我一直坚持的方法(曾经在vim.org上,现在显然在wiki上)。重新映射
ctrl-[hjkl]
以导航拆分。这对我有好处

" Use ctrl-[hjkl] to select the active split!
nmap <silent> <c-k> :wincmd k<CR>
nmap <silent> <c-j> :wincmd j<CR>
nmap <silent> <c-h> :wincmd h<CR>
nmap <silent> <c-l> :wincmd l<CR>
“使用ctrl-[hjkl]选择活动拆分!
nmap:winck
nmap:wincmd j
nmap:winch
nmap:wincmd l

键映射肯定是一种方法。我使用overthink提到的映射。我还将以下映射包括在我的vimrc中,以移动拆分本身

" Move the splits arround!
nmap <silent> <c-s-k> <C-W>k                                                                                                                       
nmap <silent> <c-s-j> <C-W>j                                                                                                                       
nmap <silent> <c-s-h> <C-W>h                                                                                                                       
nmap <silent> <c-s-l> <C-W>l
“向四周移动拆分!
nmap k
nmap j
nmap h
nmap l

这样一来,如果分割在错误的位置打开(比如说左边,我希望它在右边),我会去分割并点击
,分割会移动到我想要的位置。

我更喜欢点击单键而不是点击和弦。以下“地图”窗格将移动到箭头键:

" Smart way to move between panes
map <up> <C-w><up>
map <down> <C-w><down>
map <left> <C-w><left>
map <right> <C-w><right>
“在窗格之间移动的智能方式
地图
地图
地图
地图

为了与通过gt>更改选项卡保持一致,我目前正在尝试更改拆分的g映射。我倾向于在按下Ctrl键的同时按下shift键,这样可以帮助我避免犯错误,直到我更好地不这样做

nnoremap gh <C-W><C-H>
nnoremap gj <C-W><C-J>
nnoremap gk <C-W><C-K>
nnoremap gl <C-W><C-L>
nnoremap
nnoremap gj
nnoremap gk
nnoremap gl

我知道这是一个老问题,但我有一个完美的方法。使用拆分的编号

split\u编号C-w C-w


例如,要转到拆分数字3执行此操作,请按Ctrl-w两次。

实现此操作非常简单。请键入此快捷方式两次,这样就可以了

ctrl+w ctrl+w

很久以来,我在.vimrc中都有类似的命令,没有它们我就活不下去了。我的命令是各种各样的,比如
mapj
maph\
当我切换时,
添加命令会强制拆分到其全宽或全高。我不知道为什么,但当切换到
h
方向时,我的目标窗口是什么方向乱七八糟。由于
:wincmd
只对正常模式产生影响,并且映射在正常模式下使用,因此我已将
nmap:wincmd h
替换为
nnoremap h
,我强烈建议将caps lock重新映射到ctrl。这使使用此答案更加容易。@RafaelRendonPablo我成功地使用了它在不同的终端中:urxvt、gnome终端,可能还有其他。有可能你的终端应用程序正在捕获Ctrl吗?嗯,可能,我正在使用
tmux
,它使用
Ctrl+a
作为前缀,我将尝试禁用
tmux
。谢谢:)我认为Vim看到的是与之相同的ascii代码。因此,执行上述操作将覆盖先前的映射。我实际上使用了箭头键,这样可以使beThis确实阻塞已接受答案的映射。另请参见。您可以使用类似这样的内容:“nmap:wincmd K”和J、H、L的等效值。我知道这已经得到了回答,但您知道您可以使用
CTRL+W[hjkl]
浏览窗格/框架?这样,如果你打开了4-6个窗口,你就不必反复点击
CTRL+W,W
。我喜欢overthink的键绑定,但我喜欢跨系统的一致性,当我习惯键绑定时,我很难重新学习它们。如果我开始使用CTRL-H向左,我可能最终会变成H在没有键绑定的系统上使用CTRL-H,默认情况下,键绑定实际上会打印退格字符。该死,我过去常按CTRL-H删除东西,因为退格在我的机器上不起作用!
CTRL+w,[hjkl]
导航窗格非常有效!谢谢。CTRL+W…映射有问题,因为CTRL+W会关闭浏览器和其他应用程序中的选项卡。有时,一个不同的窗口的焦点会超出您的想象,然后…诅咒。通过简单的搜索,我发现拆分从左上到右下编号。太好了!
3 CTRL-W CTRL-W目前我使用CTRL+W+W从一个窗格移动到另一个窗格。
。。。