我正在使用最终具有以下模式行的Python文件:
# vim: sts=4:ts=4:sw=4
如果我使用此文件启动Vim,则忽略模式行。我怎样才能解决这个问题?顺便说一句,我在nocompatible
设置了.vimrc
。
答案 0 :(得分:33)
确保您的设置正确无误。难道......
:set modeline? modelines?
如果您看到 返回了这些值,则无法正常工作。
nomodeline
modelines=0
你需要看到的是(其中5是大于0的任何东西)
modeline
modelines=5
在最后一个< modelines>中,您是否有一个vim:
的行不会触及任何其他你的文件行?
说真的,这就是全部。
这些模型都有效......
# vim: cursorline
// vim: cursorline
; vim: cursorline
vim: cursorline
# vim: set cursorline: <-that colon is required if you use the word "set" and this comment after the colon does not affect it.
# anything here vim: cursorline
even without a valid comment vim: cursorline
literally anything as long a space separates> vim: cursorline
这是一个重要的! 您使用的是set
吗?(如options doc中所述的“第二种形式”)请取出set
或在末尾添加冒号
这些都不起作用......
# vim: set cursorline
^^^ issue: use of the word set without a trailing colon (:)
# vim:cursorline
^ issue: no space after the colon
#vim: cursorline
^ issue: no space before the word vim
你已经醒了超过18个小时吗?在你失去理智之前,先睡个好觉。它明天还会被打破。当你再次浏览这个列表时,你会更有可能注意到这个问题。
这个答案过去包括这个说法:
你使用的是单词吗?(如options doc中所述的“第二种形式”)嗯,这在版本8中不起作用,我不这样做知道它何时停止工作。使用“第一个表格”。
我错了。 @Amadan指出了这一点,我已经纠正了第3步。
答案 1 :(得分:5)
我将问题跟踪到一个名为local_vimrc.vim的本地插件。模式行不起作用的事实是插件的副作用。
答案 2 :(得分:4)
我的调制解调器出现了类似的问题。这个帖子中的答案帮助我找到了答案(将set modeline添加到我的〜/ .vimrc中)
https://superuser.com/questions/323712/modeline-not-work-in-vim
还有一件事帮助我调试这个是输入:set in vim。这将告诉您当前设置的不同值。
答案 3 :(得分:2)
如果您要保存和加载视图,例如使用以下内容,则重新打开文件时不会重新评估您的模式行。
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
答案 4 :(得分:0)
我的modeline和“ noexpandtab”出现了这样的问题:
# vim: noexpandtab ft=python
但是如果我写:
# vim: ft=python noexpandtab
它再次起作用。 (谢谢你们对:verbose set ...的了解!)
答案 5 :(得分:-1)
第一步是始终查看
/usr/share/vim/vim74/debian.vim
并注释掉nomodeline行。
Kubuntu发行版认为它是安全的
威胁。
(例如:libcal允许您运行任意程序)
仅当系统外的人可以通过网页运行vim时,这才是问题。 (不信任用户输入。)
还可以使用拼写检查器进行ddos攻击。 (不信任用户输入。)