在vim中,一个令人沮丧的行为是当我向右或向左移动光标(分别是"l"或"h"),并且我到达了行的末尾或开头时,我的光标不会自动移动到下一行的第一列或上一行的最后一列。
请问有没有改变这种行为的方法?
请问有没有改变这种行为的方法?
whichwrap
设置,使 h
和 l
在单个行的开头和结尾进行换行:set whichwrap+=h,l
然而,Vim的文档不建议这样做,可能会产生意外的副作用(如破坏插件或更改常见键映射的工作方式)。
作为替代方案,您可以按照Matti Virkkunen的建议进行操作:
set whichwrap+=<,>,[,]
这样做会让h
和l
保持它们的默认行为,但允许左右箭头键在文本行之间跳转。 (我就是这么做的,效果很好。)
您还可以查看backspace
设置,以控制插入模式下的退格、删除、Control+W和Control+U的工作方式。我的设置如下:
set backspace=indent,eol,start
这使我可以删除几乎所有的东西。
有关更多信息,请参见Vim帮助中的这些主题:
:help 'whichwrap
:help 'backspace
<
、>
、[
和 ]
分别代表什么意思?) - anon:help 'whichwrap'
版本链接:https://vimhelp.appspot.com/options.txt.html#%27whichwrap%27 - Adam Monsen<
和 >
分别代表正常模式和可视模式下的左/右箭头。[
和 ]
则分别代表插入模式和替换模式下的左/右箭头。这些选项在 Vim 的文档中有详细解释。输入 :help 'whichwrap'
获取更多信息。 - su2187set whichwrap+=<,>,[,]
h,l
以使vim移动键也换行。 - Matti Virkkunen
nocompatible
选项后,导致我无法使用该功能在我的vim
配置中。 - Paschalis