代码之家  ›  专栏  ›  技术社区  ›  AgentConfusedLlama

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

vim
  •  1
  • AgentConfusedLlama  · 技术社区  · 6 年前

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

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

    我不明白为什么这行不通:

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

    也尝试过变体:

    autocmd BufNewFile *.* let line = "#!/usr/bin/env" . (empty(&filetype) ? '' : ' '.&filetype)
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   builder-7000    6 年前

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

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

    因为shebangs在解释语言中使用,所以可以替换 BufNewFile * 具有 BufNewFile *.sh,*.perl,*.py .这可以防止在C等语言中出现Shebang。