我有一个名为.aliasesbash和zsh 的文件,我把这一行
# vim: set filetype=bash:
但是如果我做
: echo &ft
我懂了 conf
我有一个名为.aliasesbash和zsh 的文件,我把这一行
# vim: set filetype=bash:
但是如果我做
: echo &ft
我懂了 conf
Answers:
那应该工作。我自己尝试了这条线,并且行得通。我可能是您的“ modeline”选项设置为“ nomodeline”。尝试执行此操作,看看会得到什么。
:verbose set modeline?
这将告诉您“ modeline”选项的值,如果不是默认值,则为最后设置的位置。
一些Linux发行版在/ etc / vimrc或/ usr / share / vim / vimrc中将'nomodeline'设置为安全措施,即使'modeline'的安全问题早已得到解决。
modelines该选项未实现,并且永远不会实现。就像所有安全漏洞一样,这些安全漏洞源于文件嵌入式命令或宏指令,它们可以在PDF,Word,Excel和&c&c&c中运行。
我真的就这一个难倒,因为文件是不完全正确的。
事实证明,在版本8(甚至更早版本)中,您不能set在modeline中使用该词。该文档将“第二种形式”描述为是,/* vim: set ai tw=75: */但这不起作用。您必须使用“第一种形式”// vim: ai tw=75
注意:您可以使用任何一种注释指示符。或根本没有。
set对我来说在vim 8.0上很好用(尽管在7.4上不是)。同样值得注意的是,使用第二种形式// vim: ai tw=75时,该行的末尾不能有任何其他字符,否则vim会抱怨并忽略modeline。
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48) Inklusive der Korrekturen: 1-1689 Extra-Patches: 8.0.0056 Verändert von pkg-vim-maintainers@lists.alioth.debian.org Übersetzt von pkg-vim-maintainers@lists.alioth.debian.org Riesige Version mit GTK2-GNOME GUI. (最后几行的意思是通过修改......,通过......编译,巨大的版本...)。
set modelines=1 (或任何非0值)在我的〜/ .vimrc中为我工作。
modeline未设置,则没有任何效果(除非您是root用户,否则在Vim中是默认设置)
set nomodeline内/etc/vimrc都有在Vim中进行模式行处理。
modelines为非零值。帮助说默认值是5,所以这就是我设置的值,这对我有用。该指出,If 'modeline' is on 'modelines' gives the number of lines that is checked for set commands. If 'modeline' is off or 'modelines' is zero no lines are checked.
在〜/ .vimrc中,您需要设置以下内容:
set nocompatible
filetype plugin on
set modeline
由于这似乎出现在搜索中:
我有同样的问题:
# vim: set filetype=sh:
不起作用,也导致ft = conf。在我的〜/ .bash_alias中没有modeline的情况下,ft为空,因此发生了某些变化。
而
# vim: filetype=sh:
工作了。最后一个“:”的出现似乎无关紧要。
我正在OSX上使用Vim8酿造的版本,以供记录。
这很奇怪,因为在Modeline的帮助下
[text]{white}{vi:|vim:|ex:}[white]{options}
和
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
似乎受到支持。
输出
verbose set ft?
“ vim:filetype = sh”是
filetype=sh
Last set from modeline
没有Modeline:
filetype=
用“ vim:set filetype = sh”
filetype=conf
Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim
我的conf中可能有副作用,但是不兼容的modeline语法是唯一对我有用的语法。
很有可能是由于modeline被禁用。
我通过以下方法解决此问题:
在这种情况下,默认列入白名单的命令包括filetype。