vim中的一个令人沮丧的行为是,当我向右或向左移动光标(分别为“l”或“h”)并且我在行的结尾或开头时,我的光标不会移动到第一列下一行或上一行的最后一列。
有没有办法改变这种行为?
答案 0 :(得分:27)
您可以使用whichwrap
设置使h
和l
环绕各行的开头和结尾:
set whichwrap+=h,l
但是,Vim的文档建议不要这样做,可能是因为它可能会产生意想不到的副作用(比如破坏插件或更改常用键映射的工作方式)。
作为替代方案,你可以做Matti Virkkunen推荐的事情:
set whichwrap+=<,>,[,]
这会使h
和l
保留其默认行为,但允许左右箭头键环绕线条。 (这就是我所做的,而且效果很好。)
您可能还想查看backspace
设置,以控制Backspace,Delete,Control + W和Control + U在插入模式下的工作方式。我这样设置我的:
set backspace=indent,eol,start
这让我可以对所有内容进行退格。
有关详细信息,请参阅Vim帮助中的以下主题:
:help 'whichwrap
:help 'backspace
答案 1 :(得分:9)
将以下内容放入.vimrc:
set whichwrap+=<,>,[,]