微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VIM:为什么点运算符的工作方式不同?

我想了解Vim的点(.)寄存器中存储的内容.

请考虑以下文本:

This is Line one
This is Line two
This is Line three

光标在第一行,如果我做A;< esc>我可以用j重复下一行的相同动作.

但是,如果我执行的操作就像删除第一行上的最后一个字符$x然后尝试用j重复下一行,它不会删除该行的最后一个字符,而只是删除该字符在光标下.

那么为什么dot命令能够记住第一个例子A中的位置;< esc>而不能为$x做同样的事情?

解决方法

来自:帮助.:

.                       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.

使用A;,更改是插入;在当前行的末尾. A移动光标并切换到插入模式.

使用$x,$first移动光标,然后x命令删除一个字符.它们没有链接在一起,因此更改只是删除当前光标位置的字符.

(换句话说,如果命令在命令之后采用运动操作符,则运动只是更改的一部分,如d,或者如果运动隐含在命令中,则与A一样)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐