使用 vim 仅打开文件存在的情况

Pra*_*san 6 vim files

使用 vim 打开文件时,即使该文件不存在,vim 也会以我作为参数传递的名称打开一个空白文件。如何让 vim 仅打开文件存在的文件?

小智 1

[ -e $1 ] && vim $1
Run Code Online (Sandbox Code Playgroud)

是一个简单解决方案的核心。我通过将这一行写入文件“pv.cmd”(p 如受保护的...)并定义一个“新命令”来测试它

alias pv='source pv.cmd'
Run Code Online (Sandbox Code Playgroud)

我认为所有这些都是必要的,因为我们希望它通过(我希望是唯一的……)论证来发挥作用。

现在我可以走了

pv filename<enter>
Run Code Online (Sandbox Code Playgroud)

而且,如果该文件名不存在(“-e”测试),您将在 0.000 秒内收到一个新的提示行(我确实做到了time pv jjjjjj)。

否则文件只会在 vim 中打开。

即使只是没有参数的 pv 也会启动 vim - 欢迎屏幕。

这里有很多选择:如何命名“pv”别名?一个快速但危险的“v”?您在哪里最好地定义这个别名?你在 vim 或 vi 上使用别名吗?使该衬垫成为 bash 可执行文件吗?外壳函数?

你知道我之前想知道当这种情况发生时(编辑不需要的空文件)是我还是 vim。但现在我:q立即走了,却没有创建任何文件。

您无法直接在 pv.cmd 中测试该行,因为它需要第一个参数(在 bash 中称为“$1”)。我认为用于检查参数的 oneliner 的别名$1是最低要求的。

...或者 VIM 中有一个选项吗?


我想说,使用一个函数几乎是一样的——品味和你的组织方式(或者系统如何组织你:-)