模式行在 vim 中不起作用

模式行在 vim 中不起作用

我有一个名为 bash 和 zsh 的文件.aliases,我把这行

# vim: set filetype=bash: 

但如果我

: echo &ft

我明白了conf

答案1

这应该可行。我自己试过这行,它可行。可能是您的“modeline”选项设置为“nomodeline”。尝试执行此操作,看看会得到什么。

:verbose set modeline?

它将告诉您“modeline”选项的值,如果不是默认值,则告诉您它最后设置的位置。

一些 Linux 发行版在 /etc/vimrc 或 /usr/share/vim/vimrc 中设置“nomodeline”作为安全措施,尽管“modeline”的安全问题早已得到修复。

答案2

我描述了一个另一个答案中的完整调试清单

我真的被这个问题难住了,因为文档不是完全真的。

事实证明,在版本 8(甚至更早)中,您无法set在模式行中使用这个词。文档描述了“第二种形式”,/* vim: set ai tw=75: */但这不起作用。您必须使用“第一种形式”// vim: ai tw=75

注意:您可以使用其中任何一种注释指示符。或者根本不使用。

答案3

set modelines=1(或任何非 0 值)在我的 ~/.vimrc 中就可以正常工作。

答案4

~/.vimrc在我的 Funtoo Linux 机器上,只需添加以下内容即可:

set modeline

相关内容