为什么Vim将插入符号与$(行尾)的一个字符关闭?

时间:2010-12-31 08:58:45

标签: vim

观察Vim实例中的一行:

现在我点击$:

为什么我的光标不会一直走到尽头?一旦我尝试插入,文本就会在之前插入最后一个字符!即使我仍然在正常模式下再次向右移动,我也会收到铃声。奇怪的是,当处于编辑模式时,我可以使用右箭头键移动到实际的行尾!

有谁知道为什么Vim会这样做?顺便说一下7.3。谢谢你的帮助。

4 个答案:

答案 0 :(得分:24)

在命令模式下按 $ 会使光标移动到行尾,有效地突出显示最后一个字符。点击 i 此处插入最后一个字符前,或 a 追加到该行。这里有点模棱两可,因为您使用管道字符作为游标而不是矩形块游标。如果你想改变它,请看看“:help termcap-cursor-shape”。

如果目标是追加到行的末尾, A 将跳转到行尾并使用单个按键进入插入模式。

答案 1 :(得分:9)

使用 a 在当前后附加一个字符。

或者,要转到该行的末尾并按步骤追加,请使用大写A。即 A

类似地 shift - I 插入行的开头,而不必先按 ^

答案 2 :(得分:4)

光标不能在两个字符之间,它总是在一个字符上。

如果按$然后按x,则会正确删除当前行的最后一个可打印字符。

您所观察到的是,使用i时,您总是在所选字符之前插入文本。如果您想在所选字符后插入,则必须使用a或更好A,因为它已经被提及。

换句话说:
i表示“在光标下插入字符之前” a表示“在光标下插入字符后”。

a的助记符:a for“append”。

答案 3 :(得分:1)

$ 后,光标 一直定位在最后。它不能超越最后一个字符,因为它意味着在行中添加一个新字符。