Vim:在正常模式下快速更改视口

5
我在vim中广泛使用视窗,经常将文件分割成新的视窗等。我通常使用Ctrl+W和移动键(如hjkl)在视窗之间导航。
由于有一个用于快速切换标签页的正常模式命令gtgT^gt,我想知道是否有一个没有修饰符的正常模式等效命令。如果没有,那么一个好的映射是什么?gvgw已经被占用了。

为什么不重新映射用于选择模式的 gh(相当于说“从未使用”)? - Benoit
从前,我使用submode创建了一个模式来进行这些动作。它运行得非常好,但我决定不再保留它。我已经没有它的代码了,但submode使它变得非常容易。值得一看。 - Randy Morris
2个回答

6

为了快速切换视口,我使用以下方法:

noremap <C-J> <C-W>j<CR>
noremap <C-K> <C-W>k<CR>
noremap <C-H> <C-W>h<CR>
noremap <C-L> <C-W>l<CR>

嗯,虽然少按了一个键,但仍然使用了修饰键。 - jhogendorn
@JoshuaHogendorn - 是的。我觉得这很方便,因为在正常模式下,我的右手通常已经放在移动键(h、j、k、l)上了。 - user849425
啊,通常我使用内置键绑定来进行切换,总共需要四个按键。首先是 control,然后是 w,松开,再次按下 control,然后是 movement 字符。这样可以将按键次数缩短到两次,并消除了中间释放的时间。多次切换只需要释放移动键而不是 control,因此后续移动只需要单个按键即可。当然,这真的取决于个人喜好。 :) - user849425
实际上,我认为你的意思是 noremap <C-J> <C-W>j(等等)而不是带有 <CR>。否则,当移动时,您总会向下移动一行,这可能是不想要的。 - op325

1

我有以下映射:

map <tab> <c-w>
map <tab><tab> <c-w><c-w>

这样我就可以使用<tab>j<tab>k等快速在窗口之间移动了... 请注意,这也使得使用所有其他<c-w>映射更容易,例如<c-w>t转到第一个窗口或<c-w>b转到最后一个窗口。 这些只需变成<tab>t<tab>b

在使用这些映射之前,我一直在使用

map ,w <c-w>

所以,你可以使用这个快捷键加上一个字母来在窗口之间移动。

如果你只想保持左、右、上、下的方向,那么你可以直接使用类似于以下的内容:

map ,l <c-w>l

等等。


嗯,出乎意料的方便。虽然并不是直接回答映射到普通模式语法命令的问题,但在此期间是一个很好的权宜之计。 - jhogendorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接