当我在Vim中切换到命令模式时,光标似乎在一个字的末尾或一个字上移回一个字符,当我到达行尾时$,它不会到达实际结束时但是在最后一个单词结尾之前有一个字符,并且l("el")不会向前移动它,我必须使用箭头键到达那里.
我无法找到这种行为的文档,但这对我来说似乎很奇怪.这背后的原因是什么(为了我自己的好奇心),我怎么能绕过它(或处理它)?
Mat*_*ggs 58
如果你使用光标改变的gvim,它会更清楚一些.
gvim中的插入模式将光标作为工字梁,因为您键入的下一个字母将在|后插入.普通模式具有块光标,因为您键入的下一个内容可能只会影响当前突出显示的字母(如果您使用x,s等).因此插入模式实际上是添加文本,但普通模式是以某种方式修改文本.
所以在正常模式下,跳到行的末尾实际上只意味着最后一个字符,因为这是可以修改的最后一个字符.在插入模式下,光标将传递最后一个字符,因为之后可以添加内容.
要记住的一件事是,您可以控制块的哪一侧最终从正常模式进入插入模式
假设你有[h]是文本
([]表示块光标位于h)
假设你有他的文字
如果你此时按了i,光标看起来像这样(在gvim中)(|是插入模式光标)
假设你有文字
如果你按了一个而不是我,它会是这样的
要记住的另一件事(如pavanlimo提到的),从普通模式开始,您可以使用光标在行的第一个字符之前,或者在最后一个字符之后,使用shift-I或shift-A进入插入模式.
jce*_*ceb 10
您可能对virtualedit选项和以下值感兴趣:
set virtualedit=onemore
Run Code Online (Sandbox Code Playgroud)
使用此选项,您可以将光标移动到行尾的一个字符,然后按i在最后一个字符后插入模式.
这在某种程度上解决了这个问题,但我个人觉得这种行为有点奇怪.只有少数情况下你会遇到问题所以可能值得忽略它;-)
那是因为你使用的所有命令都会影响光标所在的字母.如果按实际字母后面的x(删除1个字母)没有意义.
实际上不需要在命令模式下将光标移动到最后一个字母后面,如果你想要追加,你可以按下一个将光标置于插入模式后面的字母.
| 归档时间: |
|
| 查看次数: |
16541 次 |
| 最近记录: |