如何通过python源代码文件中的注释覆盖vim选项?

时间:2008-12-17 21:37:46

标签: python vim

我想在评论部分的一个文件中设置一些vim选项。

例如,我想在一个文件中设置此选项

set syntax=python

该文件没有.py扩展名,我不想让我的vim安装将所有带有此扩展名的文件识别为python文件。

我知道这可以做到,因为我已经看过了,但我的谷歌搜索还没有结果。

3 个答案:

答案 0 :(得分:31)

您需要modeline语法,例如

# vim: set syntax=python:

有关详细信息,请参阅Vim Wikia上的Modeline magic

答案 1 :(得分:12)

我没有太多使用vim,但我认为你想要的是在文件的末尾添加如下所示的行:

# vim: set syntax=python:

答案 2 :(得分:3)

您可以通过在文件顶部或底部附近添加模式行来覆盖Vim选项,例如:

// vim: set syntax=python:

或:

/* vim: set syntax=python: */

或者喜欢:

# vim: set syntax=python ts=4 :

其他例子(来自wikia):

// vim: noai:ts=4:sw=4
   -or-
/* vim: noai:ts=4:sw=4
*/
   -or-
/* vim: set noai ts=4 sw=4: */
   -or-
/* vim: set fdm=expr fde=getline(v\:lnum)=~'{'?'>1'\:'1': */

以下是我正在使用的示例(在文件的最后一行):

# vim: set ts=2 sts=2 et sw=2 ft=python:

很少有亮点:

  • 只有当modeline设置为modeline或者是一个可能的整数并且你不是root(某些操作系统,如Debian,Ubuntu,Gentoo,OSX等)时,Vim才会执行模式行。默认为安全起见),因此您需要将set modeline添加到~/.vimrc文件(:e $MYVIMRC),
  • 该行必须位于第一行或最后几行
  • 开头评论与vim:之间的空格是必需的,
  • vim检查模式行的位置由modelines变量控制(参见::help 'modelines'),
  • set,模式行以第一个冒号(:)结束,
  • “vim:”以外的文字可以被识别为模式行。

相关: