如何阻止Vim创建/打开新文件?

如何阻止Vim创建/打开新文件?,vim,vi,Vim,Vi,当我们给出一个不存在的文件名时,Vim会创建新文件。这对我来说是不可取的,因为有时我给出了错误的文件名,无意打开一个文件,然后关闭它 有没有办法阻止Vim打开新文件?例如,当我执行vi文件1时,它应该说文件不存在,并停留在bash终端上(不打开vi窗口)只有使用write(例如:w或:x,相当于:wq)选项时,它才会保存文件 改为使用:q退出,将不会创建任何文件。您可以将此函数添加到.bashrc(或等效文件)中。在调用vim之前,它会检查其命令行参数是否存在。如果确实要创建新文件,可以传递--

当我们给出一个不存在的文件名时,Vim会创建新文件。这对我来说是不可取的,因为有时我给出了错误的文件名,无意打开一个文件,然后关闭它


有没有办法阻止Vim打开新文件?例如,当我执行
vi文件1
时,它应该说
文件不存在
,并停留在
bash
终端上(不打开
vi
窗口)

只有使用write(例如
:w
:x
,相当于
:wq
)选项时,它才会保存文件


改为使用
:q退出,将不会创建任何文件。

您可以将此函数添加到.bashrc(或等效文件)中。在调用vim之前,它会检查其命令行参数是否存在。如果确实要创建新文件,可以传递
--new
以覆盖检查

vim(){
本地参数=(“$@”)
本地新建=0
#检查“--new”。
对于((i=0;i<${args[@]};++i)),do
如果[${args[$i]}=--new]];则
新=1
unset args[$i]#不要将“--new”传递给vim。
fi
完成
如果!((新));那么
对于“${args[@]}”中的文件,请执行以下操作
[[$file=-*]&&continue#忽略选项。
如果![-e$file]];那么
printf“%s:无法访问%s:没有这样的文件或目录\n'$FUNCNAME'$file'>&2
返回1
fi
完成
fi
#使用“command”调用vim二进制文件,而不是此函数。
命令“$FUNCNAME”“${args[@]}”
}

谢谢。但是我想避免那些额外的击键(
:q
)+看到一个空文件的惊喜。我只想留在终端上。
vim notexistencefile
不要创建
notexistencefile
,而是创建相同的命名缓冲区<代码>:q
:q
ZQ
在这种情况下,只需从Vim退出,无需任何文件写入操作。