首页 > 解决方案 > .vimrc 自动命令在打开新文件时添加文本

问题描述

需要在我的 .vimrc 中添加一个自动命令,它会在第一行自动插入文本,这将是我的 shebang。我想在不重定向到骨架文本文件的情况下执行此操作。

我以前见过这个问题,但解决方案似乎总是涉及创建一个框架文本文件并从中提取。考虑到我不是在寻找完整的标题,这似乎过于复杂。

我不知道为什么这不起作用:

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

也尝试过变体:

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

标签: vim

解决方案


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

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

因为 shebangs 用于解释语言,您可以BufNewFile *BufNewFile *.sh,*.perl,*.py. 这可以防止在 C 等语言中出现 shebangs。


推荐阅读