.vimrc auto命令在打开新文件时添加文本

时间:2018-05-14 17:44:59

标签: vim

需要在我的.vimrc中添加一个自动命令,自动在第一行插入文本,这将是我的shebang。我想这样做而不重定向到骨架文本文件。

我之前已经看过这个问题,但解决方案似乎总是涉及创建一个骨架文本文件并从中拉出来。考虑到我不是在寻找一个完整的标题,这似乎过于复杂。

我无法弄清楚为什么这不起作用:

autocmd BufNewFile * let line = "#!/usr/bin/env" . (empty(&filetype) ? '' : ' '.&filetype)

还试过变种:

autocmd BufNewFile *.* let line = "#!/usr/bin/env" . (empty(&filetype) ? '' : ' '.&filetype)

1 个答案:

答案 0 :(得分:4)

您可以在第一行使用替换:

autocmd BufNewFile * let ftype = &ft | execute 'silent! 1s:.*:#!/usr/bin/env ' . ftype

由于shebang用于解释语言,因此您可以将BufNewFile *替换为BufNewFile *.sh,*.perl,*.py。这可以防止使用诸如C等语言中的shebang。