vim - 进入插入模式时的光标定位

标签 vim

当我在 Vim 中切换到命令模式时,当光标位于单词末尾或单词上时,以及当我使用 $ 转到行尾时,光标似乎向后移动一个字符。 ,它不会到达实际的行尾,而是在最后一个单词的结尾前一个字符,以及 l ("el") 不会向前移动,我必须使用箭头键才能到达那里。

我一直无法找到这种行为的文档,但这对我来说似乎很奇怪。这背后的原因是什么(出于我自己的好奇心),我该如何解决(或处理它)?

最佳答案

如果您使用 gvim,光标会发生变化,则会更清楚一些。

gvim 中的插入模式将光标作为 I 型梁,因为您键入的下一个字母将插入在 | 之后。正常模式具有块光标,因为您接下来键入的内容可能只会影响当前突出显示的字母(例如,如果您使用 x、s 等)。所以插入模式实际上是添加文本,而普通模式是通过某种方式修改文本。

所以在普通模式下,跳到行尾实际上只意味着最后一个字符,因为这是最后一个可以修改的东西。在插入模式下,光标经过最后一个字符,因为之后可以添加内容。

要记住的一件事是,您可以控制最终从正常模式转到插入模式的块的哪一侧

([] 表示块光标在那个 h 上)

Let's say you have t[h]is text



如果此时按下 i,光标将如下所示(在 gvim 中)
(| 是插入模式光标)

Let's say you have t|his text



如果你按下 a 而不是 i,它看起来像这样

Let's say you have th|is text



另一件要记住的事情(如 pavanlimo 提到的),从正常模式下,您可以使用光标在行的第一个字符之前或最后一个字符之后使用 shift-I 或 shift-A 进入插入模式。

关于vim - 进入插入模式时的光标定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676388/

相关文章:

vim 中的 Ruby 支持

regex - 我如何使用 vim 替换所有匹配正则表达式的整行

vim - 如何设置我的 vim-airline 或 vim-powerline

ruby - Vim 多个元键

vim - 超过 1 个字符的环绕视觉文本

ruby - 从一开始的多少行内必须放置各种方向?

VIM - 如何将当前行号附加到键映射中?

xml - 使用 gg=G 和 xml 的 Vim 格式化

当给出一个不匹配的左大括号/括号时,vim 折叠打开

regex - Vim 正则表达式捕获组 [bau -> byau : ceu -> cyeu]