需要在我的.vimrc中添加一个自动命令,自动在第一行插入文本,这将是我的shebang。我想这样做而不重定向到骨架文本文件。
我之前已经看过这个问题,但解决方案似乎总是涉及创建一个骨架文本文件并从中拉出来。考虑到我不是在寻找一个完整的标题,这似乎过于复杂。
我无法弄清楚为什么这不起作用:
autocmd BufNewFile * let line = "#!/usr/bin/env" . (empty(&filetype) ? '' : ' '.&filetype)
还试过变种:
autocmd BufNewFile *.* let line = "#!/usr/bin/env" . (empty(&filetype) ? '' : ' '.&filetype)
答案 0 :(得分:4)
您可以在第一行使用替换:
autocmd BufNewFile * let ftype = &ft | execute 'silent! 1s:.*:#!/usr/bin/env ' . ftype
由于shebang用于解释语言,因此您可以将BufNewFile *
替换为BufNewFile *.sh,*.perl,*.py
。这可以防止使用诸如C等语言中的shebang。