/* vim: set ft=c: */
则用vim打开时,就自动识别为c语言文件。要打开这个功能,在你的.vimrc中,要有
set modeline
modeline有两种格式:
(1)第一种格式:
[text]{white}{vi:|vim:|ex:}[white]{options}
[text] 随便什么文本,或者空白。
{white} 至少一个空格或tab。
{vi:|vim:|ex:} 后面三个字符串之一,"vi:", "vim:" 或 "ex:"。
[white] 可有也可无的空格。
{options} 被set的选项列表,用冒号':'分隔。
举例:
// vi:noai:sw=3 ts=6
/* vim:tabstop=8:expandtabs:shiftwidth=8 */
/* vim:tabstop=8:expandtabs:shiftwidth=8 */
(2)第二种格式:
[text]{white}{vi:|vim:|ex:}[white]set {options}:[text]
[text] 随便什么本文,或者空白。
{white} 至少一个空格或tab。
{vi:|vim:|ex:} 后面三个字符串之一,"vi:", "vim:" or "ex:"。
[white] 可有也可无的空格。
set 字符串"set " (注意set后面的那个空格不可少)。
{options} 选项列表,用空格分开。
: 一个冒号。
[text] 随便什么文本,或者空白。
举例:
/* vim: set ai tw=75: */
/* vim: set shiftwidth=4 autoindent : */
/* vim: set shiftwidth=4 autoindent : */
注意:
vi:或vim:或ex:前面的那个空格不可少,这可以最大限度地避免误判。但,
vi:和vim:可以直接放在行首,而ex:不行。
modeline还可以加入版本识别,所用数字为实际版本号乘以100。如
vim600: 版本大于等于6.0
vim<600: 版本小于6.0
vim=600: 版本等于6.0
vim>;600: 版本大于6.0
vim<600: 版本小于6.0
vim=600: 版本等于6.0
vim>;600: 版本大于6.0
两种格式的区别:
对于第一种格式,一旦识别,该行剩余部分都将被使用,因此,这样的写法
/* vi:ts=4: */
将因为后面的*/而出错。
而采用第二种格式就没有这个问题了,因为它将显式地以一个冒号结束。
/* vi:set ts=4: */
modeline写在哪儿?
vim只会在一个文件的前modelines行和后modelines行中寻找modeline命令
模式,modelines的默认值是5。
modeline的开关是什么?
开:set modeline
关:set nomodeline
事实上,set modelines=0 的效果和set nomodeline是一样的。
没有评论:
发表评论