在 VIM 中一步打开与现有文件同名的空白新文件?

Open blank new file with the same name as existing file in one step, in VIM?

假设我在当前目录中有 stuff.txt,里面装满了东西。我想摆脱它,并在 vim 中创建一个新的 stuff.txt。显然我可以做到

rm stuff.txt
vi stuff.txt

但这就是两步,太恐怖了!有没有办法在不调用 rm 的情况下将其合并为一个 vim/vi 调用?可能是 vim 上的一些 -option 我在查看手册时不知何故错过了?

明显的解决方法是在一个文件中创建这样的东西,例如,new.sh:

#!/bin/bash
rm 
vim 

然后从命令行执行,./new.sh stuff.txt,但这似乎有点不优雅。我在 ubuntu 使用标准 bash。

您可以这样开始 vim

vim -c '%d' stuff.txt

此处-c选项为:

-c <command> Execute <command> after loading the first file

%d 将在打开文件后删除文件中的所有行。

rmed () {
    local EDITOR=${EDITOR:-vi}
    [ -f "" ] && rm ""
    command $EDITOR ""
}

这是一个 shell 函数,它将删除给定的文件,然后打开 $EDITOR(如果未设置 $EDITOR,则打开 vi)同名。

$ rmed somefile

你写一个function/alias/script做你想做的。
我有一个名为 vix 的脚本,当参数不存在或只有 chmod 时,它将开始编写 shell 脚本(shebang 行和 chmod +x),并在存在时编辑它。
也许你应该使用 virm 因为我不喜欢 rmvi.

的发音