Bash 在VIM中,一步打开与现有文件同名的空白新文件?
假设我在当前目录中有stuff.txt,其中填充了stuff。我想摆脱它,在vim中创建一个新的stuff.txt。显然我能做到Bash 在VIM中,一步打开与现有文件同名的空白新文件?,bash,ubuntu,vim,vi,Bash,Ubuntu,Vim,Vi,假设我在当前目录中有stuff.txt,其中填充了stuff。我想摆脱它,在vim中创建一个新的stuff.txt。显然我能做到 rm stuff.txt vi stuff.txt 但那是两步,恐怖!有没有办法在不调用rm的情况下将其整合到一个vim/vi调用中?Perphaps在vim上的一些选项,我在查看手册时不知怎么错过了 显而易见的解决方法是在一个名为new.sh的文件中创建如下内容: #!/bin/bash rm $1 vim $1 然后从命令行执行,./new.sh stuff.
rm stuff.txt
vi stuff.txt
但那是两步,恐怖!有没有办法在不调用rm的情况下将其整合到一个vim/vi调用中?Perphaps在vim上的一些选项,我在查看手册时不知怎么错过了
显而易见的解决方法是在一个名为new.sh的文件中创建如下内容:
#!/bin/bash
rm $1
vim $1
然后从命令行执行,./new.sh stuff.txt,但这似乎有点不合逻辑。我在ubuntu上使用标准bash。您可以像这样启动
vim
:
vim -c '%d' stuff.txt
此处-c
选项为:
-c
加载第一个文件后执行
%d
将在打开文件后删除文件中的所有行
rmed () {
local EDITOR=${EDITOR:-vi}
[ -f "$1" ] && rm "$1"
command $EDITOR "$1"
}
这是一个shell函数,它将删除给定文件,然后使用相同名称的文件打开$EDITOR
(或vi
(如果未设置$EDITOR
)
$ rmed somefile
您可以编写一个函数/别名/脚本来执行所需操作。
我有一个名为
vix
的脚本,当参数不存在或只有chmod时,它将开始编写shell脚本(shebang行和chmod+x),并在参数存在时对其进行编辑。也许你应该使用
virm
,因为我不喜欢rmvi
>stuff.txt
和vim的声音$代码>?除了快捷方式外,是否有两个命令可以工作?您可以利用bash并通过获取最后一个参数$代码>(例如vim!$
)或使用M-。
参见post:orvim-c'%d'-c'w'stuff.txt
,以及之后的:q代码>或:e代码>你无法取回东西。当您还需要针对u
(undo)的内容时,请尝试vim-c'%d'-c'w'-c'e'stuff.txt
。能够使用undo可能是最好的选择,更不用说使用持久历史,它会变得更加有用。