在文件中嵌入vim设置

kfl*_*l62 59 vim

在某些文件中,我可以看到带有vim设置的注释行,通常是最后一行.vim读取这些设置吗?如果确实如此,那么人们可以放置什么样的设置有任何限制?

Ric*_*ick 56

他们被称为模型,虽然我不确定你可以使用它们的程度,这里是vimtips wiki的链接,有一些例子:

http://vim.wikia.com/wiki/Modeline_magic

help modeline
Run Code Online (Sandbox Code Playgroud)

从vim内部查看官方文档.

  • 所有已知的模型安全问题已经修复多年了.任何"危险"选项,如"makeprg"或"shell"都无法通过模式线设置.帮助中充满了选项,最后说"出于安全原因,无法在模式行中设置". (5认同)
  • 模型有安全问题; 这就是他们默认禁用的原因.配置每个项目的.vimrc文件可能会更好.[例如](http://lwn.net/Articles/20249/),但还有更多. (2认同)

And*_*510 25

这是这行代码:

[other chars]<spaces>vim:<spaces>settings
Run Code Online (Sandbox Code Playgroud)

把它放在文件的第一行或最后几行,注意它需要<spaces>.例如:

# vim: tabstop=2 shiftwidth=2 expandtab
Run Code Online (Sandbox Code Playgroud)

简短版本:

# vim: ts=2 sw=2 et
Run Code Online (Sandbox Code Playgroud)

将上面一行放在文件的顶部或底部,完成.有关更多信息,请使用vim help:

:h modeline
Run Code Online (Sandbox Code Playgroud)

  • 扩展这个有用的摘要:这些行需要位于文件的顶部或底部“附近”。默认情况下,“near”意味着它必须是文件的第一行或最后 **5** 行之一。https://vim.fandom.com/wiki/Modeline_magic (2认同)
  • 另请注意,`vim:` 之后的所有内容都必须是有效的 VIM 模型行语法,例如,您不能在与模型行相同的行上使用结束注释分隔符,例如 `/* vim: ts=2 sw=2 */`不管用。 (2认同)