Leon Zhang
unread,Feb 15, 2009, 2:50:47 AM2/15/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to uber note rui, GoogleGroup日记, r01ustc...@blogger.com, r01ust...@blogger.com, rleon...@spaces.live.com, rui21...@blogger.com, GoogleGroups 杂七杂八, hktk posterous, scribblelive.天天向上, 海阔天空Blog, day-up...@spaces.live.com, rui.us...@blogger.com, r01ustc.upup, linux Blog
vim中的modeline可以在你的文件中读入一些设置,如文件类型等。如,在b.bak中的开头写入:
/* 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 */
(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 : */
注意:
vi:或vim:或ex:前面的那个空格不可少,这可以最大限度地避免误判。但,
vi:和vim:可以直接放在行首,而ex:不行。
modeline还可以加入版本识别,所用数字为实际版本号乘以100。如
vim600: 版本大于等于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是一样的。