我在 Vim 中创建了一个宏(键绑定)(来自 Vi 文档的 :map q :wq^V^VCR CR)来保存并退出,但它创建了一个文件 ^V^V 相反,bash shell 几乎迫使我转义插入符号,但无法删除该文件。所以我复制并粘贴了它,它删除了所有可见的文件。我注意到是因为 Alacritty 终端警告我配置文件消失了。
我很幸运,我使用的是 Macos 垃圾 cli 实用程序而不是 rm,而且我正在 dotfile 存储库中工作(通过版本控制进行备份)。
为什么会出现这种情况?为什么这个文件就像一个黑洞?
我能够将它们从垃圾箱转移到 dotfile 存储库,并且必须使用 git Reset Hard HEAD 来删除烦人的文件,但这需要一些工作。
首先要注意的是:Vim 是 Vim,不是 Vi。他们有很多共同点,但也有更多不同点。如果您绝对想从书本中学习,请选择 一本关于 Vim 的书,而不是 一本关于 Vi 的书。
你的问题除了用错书之外,还在于你没有仔细阅读。^V
不是
^
字符后跟
V
字符,它是
CTRL+V
的字面表示。在给定的示例中,您被告知......
:
输入命令行:
:
map q :wq
:
:map q :wq
^V
(
CTRL+V
) 两次(也许是 Vi 的事情,你只需要在 Vim 中执行一次),
Carriage Return
即可插入其文字值 (
^M
):
:map q :wq^M
Carriage Return
即可执行您刚刚键入的命令。
map q :wq^M
其中 ^M
是文字
CTRL+M
字符,而不是:
map q :wq^V^VCR CR
其中^
是
^
,
V
是
V
,等等。难怪你的映射正在做各种疯狂的事情,因为它纯粹是胡言乱语。至于为什么由损坏的映射创建的文件会出现这样的行为?如果你做类似的事情:
$ rm '^V^VCR CR'
或:
$ rm \^V\^VCR\ CR
然后文件按预期删除,但从你混乱的问题中不清楚你实际上做了什么。
一些建议:
ZZ
。