我想了解Vim的点(.)寄存器中存储的内容.
请考虑以下文本:
This is Line one
This is Line two
This is Line three
Run Code Online (Sandbox Code Playgroud)
将光标放在第一行,如果我这样做,A;<esc>我可以为下一行重复相同的操作j.
但是,如果我不喜欢在第一线去掉最后一个字符的动作$x,然后尝试重复它由下一行j.,但不删除该行的最后一个字符,而不是它只是删除光标下的字符.
那么为什么dot命令能够记住第一个例子中的位置A;<esc>而不能为此做同样的事情$x呢?
来自:help .:
. Repeat last change, with count replaced with [count].
Also repeat a yank command, when the 'y' flag is
included in 'cpoptions'. Does not repeat a
command-line command.
Run Code Online (Sandbox Code Playgroud)
使用时A;,更改是;在当前行的末尾插入a .A移动光标并切换到插入模式.
使用$x,第$一个移动光标,然后x命令删除一个字符.它们没有链接在一起,因此更改只是删除当前光标位置的字符.
(换句话说,该运动是仅变化的部分,如果命令需要一个操作者的运动后的命令,如d,或者如果该运动是在命令隐式的,像A.)