我很少(如果有的话)只打开没有文件名的vim。通常,我想测试一些东西,通常是一个快速扔掉的脚本,并且我通常将它们命名为test.sh(或其某些变体,例如test.py)。如果我运行没有任何文件名的vim,可以使test.sh假定为vim文件名吗?我通常会使用别名(例如vims表示vim test.shvimp表示vim test.py,或者使用整个:w test.sh),但是我想知道在vim内部是否有办法。如果我可以将其限制在某些目录(如/tmp~/dev),那就更好了。

#1 楼

尝试将其放在.vimrc的末尾(进行适当修改)如果vim的当前目录是@%。您也可以像这样添加其他目录

if @% == "" && getcwd() == "/tmp"
    :silent edit test.sh
endif


然后静默编辑test.sh。如果该文件已经存在,则将其加载。否则,您将使用该名称启动一个新的缓冲区,并且如果写入该文件,则会创建该文件。
(getcwd() == "/tmp" || getcwd() == "~/dev")


#2 楼

修改约翰的答案可能会有用:

if @% == "" && getcwd() == "/tmp"
    :silent edit `=glob("test\.*", 1, 1)[0]`
endif


这将打开以test.开头的第一个文件。 ,如果您还想打开其他匹配文件,请执行以下操作:

if @% == "" && getcwd() == "/tmp"
    for i in glob("test\.*", 1, 1)
        :silent edit `=i`
    endfor
endif