为什么Vim用$(行尾)将插入符号定位为一个字符?

为什么Vim用$(行尾)将插入符号定位为一个字符?,vim,Vim,观察Vim实例中的一条线路: 现在我点击$: 为什么我的光标没有一直移动到最后?一旦我尝试插入,文本就会在最后一个字符之前插入!即使我在正常模式下再次尝试向右移动,我也会听到铃声。奇怪的是,在编辑模式下,我可以用右箭头键移动到实际的行尾 有人知道Vim为什么这么做吗?顺便说一句,7.3节。感谢您的帮助。在命令模式下按$会使光标移动到行尾,有效地突出显示最后一个字符。点击此处的i以插入最后一个字符之前,或点击a以追加到行中。这里有点模糊,因为您使用的是管道字符作为光标,而不是矩形块光标。如果

观察Vim实例中的一条线路:

现在我点击$:

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

有人知道Vim为什么这么做吗?顺便说一句,7.3节。感谢您的帮助。

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

如果目标是追加到行尾,A将跳转到行尾,并通过单次按键进入插入模式。

使用A在当前字符后追加字符

或者,要在一个步骤中转到行尾并追加,请使用大写字母
A
。即shiftA


类似地,shift-I可在行首插入,而无需先按^。

按$后,光标将一直定位在末尾。它不能超过最后一个字符,因为这意味着要在行中添加一个新字符。

光标不能位于两个字符之间,它始终位于一个字符上

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

您观察到的事实是,使用
i
,您总是在所选字符之前插入文本。如果要在所选字符后插入,必须使用
a
或更好的
a
,如前所述

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


a
:a表示“追加”。

使用
a
而不是
i
将光标移动到下一个字符,并以插入模式结束。