emacs的Local Variables和vim的Modeline

 

emacs和vim都可以通过在文件中设置一些变量来影响当前文档,在emacs中被称为Local Variables或者叫File Variables,在vim中被叫做Modeline。叫法不一样,功能是相同的,不过写法上还有些区别。

1 emacs

emacs的方式是在第一行用下面的格式:

-*- var1: value1; var2: value2; ... -*-

也就是说变量以及它的值被包含在两个"-*-"之间;可以写多组变量,每组之前用";"分割;每组变量和值用":"分割,变量名在冒号前,变量的值写在冒号后。在这段代码的前面可以加任意的字符,也就是说我们可以在前后加上对应的注释,让它不对实际的文本造成影响。

比如我们要让某个文件打开时自动进入C++-mode,并且设置tab-width为4就可以在文件头写上:




如果是进入python模式并且把coding设为gbk,那就是:

在某些第一行有特殊用处的语言下,emacs也可以把Local Variables放在文件的最后。方法是在文件的最后几行,用包含"Local Variables:"的行开头,"End:"的行结尾,中间每行放一个变量。

比如一个文件是c模式并且要求tab-width为8,则在文件尾写:

2 vim

vim的Modeline写法有两种:

(1)第一种格式:

[text]{white}{vi:|vim:|ex:}[white]{options}

  • [text] 随便什么文本,或者空白。
  • {white} 至少一个空格或tab。
  • {vi:|vim:|ex:} 后面三个字符串之一,"vi:", "vim:" 或 "ex:"。
  • [white] 可有也可无的空格。
  • {options} 被set的选项列表,用冒号':'分隔。

比如:








(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中要使modeline生效,必须打开modeline选项,方法是执行set modeline或者加入vimrc中。
另外还可以设置vim读取前几行当作modeline,方法是set modelines=8设置为8行,默认是5行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值