如果我通过调用加上任何其他字母ed
来为某个地址添加书签,我可以稍后通过调用返回到该地址。我经常制作这些书签,尤其是在浏览长文档时。k
'+letter
g/vim/s//ed/g
但是,如果我创建这样的书签,然后当我尝试返回到我添加书签的地址时执行全局替换(例如),它就会消失并ed
给我Invalid address
。这很奇怪,因为尤其是在调用全局替换之后,人们希望返回到之前所在的位置,因为全局替换重置dot
为最后编辑的行。
我在这里错过了什么吗?
答案1
k
当删除或修改该命令引用的行时,用该命令设置的标记将被清除。如果该行因删除或插入其他行而发生移动,则该标记不会被清除。
ed
这在 GNU手册 ( )中有记录info ed
,其中描述了该k
命令:
[...] 在删除或修改该行之前,该标记不会被清除。 [...]
BSDed
手册也有相同的措辞。
POSIX 标准文本没有记录与该k
命令相关的内容,但对于该g
命令说......
[...] 由命令列表修改的任何行都不应被标记。 [...]