没有给任何文件名时,如何使Vim使用默认文件名?


17

我很少(如果有的话)只打开vim没有文件名的文件。通常,我想测试一些东西,通常是一个快速扔掉的脚本,而且我通常给它们命名test.sh(或其某种变体,例如test.py)。如果我不带任何文件名运行,是否可以vim假定test.sh文件vim名?我通常会使用别名(例如vimsfor vim test.shvimpfor vim test.py,或完整使用:w test.sh),但我想知道是否有办法解决这个问题vim。如果我可以将其限制为某些目录(如/tmp或),那就更好了~/dev

Answers:


10

尝试将其放在.vimrc的末尾(适当修改)

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

这将检查当前文件名是否为空(@%引用当前文件名),并检查vim的当前目录是否为/tmp。您也可以像这样添加其他目录

(getcwd() == "/tmp" || getcwd() == "~/dev")

然后,它静默编辑test.sh。如果该文件已经存在,则将其加载。否则,您将使用该名称启动一个新的缓冲区,并且如果编写该文件,则将创建该文件。

在启动过程中,我没有做出任何声音来抑制以下消息:

"test.sh" [New File]
Press ENTER or type command to continue

5

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

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.