在文件中嵌入vim设置

在文件中嵌入vim设置,vim,Vim,在一些文件中,我可以看到带有vim设置的注释行,通常是最后一行。vim是否读取这些设置?如果是这样的话,人们可以设置什么样的设置有什么限制吗?您可以在在线手册中查看: 这个faq项目也提到了它:它们被称为modelines,虽然我不确定你能在多大程度上使用它们,但这里有一个到vimtips wiki的链接,其中有一些示例: 从vim内部查看官方文档。这是一行代码: [other chars]<spaces>vim:<spaces>settings 简而言之: # vi

在一些文件中,我可以看到带有vim设置的注释行,通常是最后一行。vim是否读取这些设置?如果是这样的话,人们可以设置什么样的设置有什么限制吗?

您可以在在线手册中查看:


这个faq项目也提到了它:

它们被称为modelines,虽然我不确定你能在多大程度上使用它们,但这里有一个到vimtips wiki的链接,其中有一些示例:


从vim内部查看官方文档。

这是一行代码:

[other chars]<spaces>vim:<spaces>settings
简而言之:

# vim: ts=2 sw=2 et
将上面的一行放在文件的顶部或底部,完成。有关更多信息,请使用vim帮助:


抱歉,Rick在一分钟内跑得更快:)。因此,我接受了他的回答+1对于链接Modeline存在安全问题;这就是默认情况下禁用它们的原因。您最好配置每个project.vimrc文件,但是还有更多的问题,所有已知的modeline安全问题都已经解决多年了。任何“危险”选项,如
'makeprg'
'shell'
都不能从modeline设置。“帮助”中有很多选项,最后说“出于安全原因,无法在modeline中设置”。展开此有用的摘要:这些行必须“靠近”文件的顶部或底部。默认情况下,“near”表示它必须是文件的前5行或最后5行之一。还要注意,
vim:
之后的所有内容必须是有效的vim modeline语法,例如,不能在modeline的同一行上使用结束注释分隔符,例如,
/*vim:ts=2 sw=2*/
将不起作用。
# vim: tabstop=2 shiftwidth=2 expandtab
# vim: ts=2 sw=2 et
:h modeline