![如何在 Vim 中撤消意外的“标记”覆盖(而不是跳转)?](https://linux22.com/image/1389359/%E5%A6%82%E4%BD%95%E5%9C%A8%20Vim%20%E4%B8%AD%E6%92%A4%E6%B6%88%E6%84%8F%E5%A4%96%E7%9A%84%E2%80%9C%E6%A0%87%E8%AE%B0%E2%80%9D%E8%A6%86%E7%9B%96%EF%BC%88%E8%80%8C%E4%B8%8D%E6%98%AF%E8%B7%B3%E8%BD%AC%EF%BC%89%EF%BC%9F.png)
我按下了me
而不是'e
,标记“e”被当前位置覆盖,而不是跳转到当前位置。我该如何撤消它?
答案1
:delmarks e
将删除特定标记。可以缩写:delm e
来自维基百科:
Command Description
:delmarks a delete mark a
:delmarks a-d delete marks a, b, c, d
:delmarks abxy delete marks a, b, x, y
:delmarks aA delete marks a, A
:delmarks! delete all lowercase marks for the current buffer (a-z)
针对您的评论:
为了保存你的分数历史记录,你需要写一份维明信息文件使用:wv[iminfo][!] [file]
。
viminfo 文件用于存储:
- 命令行历史记录。
- 搜索字符串历史记录。
- 输入行历史记录。
- 非空寄存器的内容。
-为多个文件做标记。
-文件标记,指向文件中的位置。
- 最后的搜索/替换模式(对于 'n' 和 '&')。
- 缓冲区列表。
- 全局变量。
这可以用 来读回:rv[iminfo][!] [file]
。
使用文件存储标记有一个很大的警告viminfo
。它只能存储大写或数字标记。不是小写标记。
只要文件仍在缓冲区列表中,小写标记 'a 到 'z 就会被记住。如果从缓冲区列表中删除文件,则其所有标记都会丢失。如果删除包含标记的行,则该标记将被删除。
答案2
一旦用新位置“覆盖”了标记,就无法撤消。您能做的最好的事情就是按ctrl-o直到光标位于旧位置并再次创建标记。