为什么 `dae` 命令会删除文件中的所有内容?
Why does `dae` command delete everything in a file?
最近开始探索VIM,知道了daw
这个命令,它不仅可以删除下一个单词之前的内容,还可以完全删除当前单词。
从逻辑上讲,dae
命令会在单词结尾之前删除,但突然间,它只是清除了文件……所以,有什么问题吗?
好吧,让我们仔细看看你在做什么:
daw
-> 删除一个词。删除类型为 word 的对象,包括空格。 (有diw
-> Delete inner word,不删除空格)。此对象可以在 :h text-objects
中找到
现在你尝试同样的动作 e
,这是单词的结尾。单词的结尾不是文本对象,而是一个位置。这就是 a
和 i
不能用于 de
的原因。
在 vim dae
中无效。不知道 vs code 从中得到了什么。
在vscodevim
中,动作ae
引用了整个缓冲区,因此dae
将删除它。
请注意,这与“真实”无关 Vim,那不是一个有效的命令。我会使用 Gd1G
在 Vim:
中产生相同的效果
G
转到最后一行;
d1G
从那里删除到第一行。
虽然毫无疑问还有其他方法,但 Vim 在不同的做事方式上如果不是多产的话也算不了什么:-)
最近开始探索VIM,知道了daw
这个命令,它不仅可以删除下一个单词之前的内容,还可以完全删除当前单词。
从逻辑上讲,dae
命令会在单词结尾之前删除,但突然间,它只是清除了文件……所以,有什么问题吗?
好吧,让我们仔细看看你在做什么:
daw
-> 删除一个词。删除类型为 word 的对象,包括空格。 (有diw
-> Delete inner word,不删除空格)。此对象可以在 :h text-objects
现在你尝试同样的动作 e
,这是单词的结尾。单词的结尾不是文本对象,而是一个位置。这就是 a
和 i
不能用于 de
的原因。
在 vim dae
中无效。不知道 vs code 从中得到了什么。
在vscodevim
中,动作ae
引用了整个缓冲区,因此dae
将删除它。
请注意,这与“真实”无关 Vim,那不是一个有效的命令。我会使用 Gd1G
在 Vim:
G
转到最后一行;d1G
从那里删除到第一行。
虽然毫无疑问还有其他方法,但 Vim 在不同的做事方式上如果不是多产的话也算不了什么:-)