在vim中,如何使左右箭头键改变线?


25

在vim中,除一个例外,我的箭头键正常工作,可以按预期向上,向下,向左和向右移动。在一行的开头,向左箭头不执行任何操作,而不是转到上一行的最后一个字符。在一行的末尾,向右箭头不执行任何操作,而不是转到下一行的第一个字符。

是否可以更改设置以获得我期望的行为?


4
我认为大多数VIM用户都建议您不要使用箭头键。
user12612'7

@ user12612为什么是呢?
luchonacho

@luchonacho我认为想法是严重的VIM用户会认为您的手指不应离开键盘的主行,以便导航您在文本中的位置。
nohat

Answers:


26

经过进一步的谷歌搜索后,我发现答案是使用该whichwrap选项。

我在.vimrc中添加了以下行:

set whichwrap+=<,>,[,]

<>选项打开为正常模式所需的设置,[]打开用于插入模式所需的设置。


1
(为什么这不是我系统上的默认设置是一个谜)
nohat

这似乎并不影响h j k l键的行为。
塞巴斯蒂安·格里戈诺利

正确,h和j还有其他值。请参阅:help 'whichwrap'vimhelp.appspot.com/options.txt.html#%27whichwrap%27。k和l并不是真正适用,因为我们在行的开头/结尾讨论左/右行为。
亚当·蒙森

9

将此添加到您的.vimrc中:

set whichwrap+=<,>,h,l,[,]

0

这是默认行为-您始终可以使用Home和End跳到一行的开始和结束。


5
OP希望更改默认行为。这就是为什么他首先在这里问。
akira

0

您可以通过使用w和b来解决此问题,它们将跨行换行。


但是b带您上一行的最后一个单词的第一个字符。在一行的第一个字符处时,真的没有办法使左箭头移动到上一行的最后一个字符处吗?
nohat

是的,我知道,这不是真正的解决方案。
hasen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.