emacs的Local Variables和vim的Modeline

來源:互聯網
上載者:User

 

emacs和vim都可以通過在檔案中設定一些變數來影響當前文檔,在emacs中被稱為Local Variables或者叫File Variables,在vim中被叫做Modeline。叫法不一樣,功能是相同的,不過寫法上還有些區別。

1 emacs

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

-*- var1: value1; var2: value2; ... -*-也就是說變數以及它的值被包含在兩個"-*-"之間;可以寫多組變數,每組之前用";"分割;每組變數和值用":"分割,變數名在冒號前,變數的值寫在冒號後。在這段代碼的前面可以加任意的字元,也就是說我們可以在前後加上對應的注釋,讓它不對實際的文本造成影響。

比如我們要讓某個檔案開啟時自動進入C++-mode,並且設定tab-width為4就可以在檔案頭寫上:

// -*- mode: c++; tab-width: 4; -*-如果是進入python模式並且把coding設為gbk,那就是:

# -*- mode: python; coding: gbk; -*-

在某些第一行有特殊用處的語言下,emacs也可以把Local Variables放在檔案的最後。方法是在檔案的最後幾行,用包含"Local Variables:"的行開頭,"End:"的行結尾,中間每行放一個變數。

比如一個檔案是c模式並且要求tab-width為8,則在檔案尾寫:

/* Local Variables: */<br />/* mode: c */<br />/* table-width: 8 */<br />/* End: */<br />

2 vim

vim的Modeline寫法有兩種:

(1)第一種格式:

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

  • [text] 隨便什麼文本,或者空白。
  • {white} 至少一個空格或tab。
  • {vi:|vim:|ex:} 後面三個字串之一,"vi:", "vim:" 或 "ex:"。
  • [white] 可有也可無的空格。
  • {options} 被set的選項列表,用冒號':'分隔。

比如:

// vim:ft=cpp:tabstop=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 ft=c tabstop=2: */兩種格式的區別:

對於第一種格式,一旦識別,該行剩餘部分都將被使用,因此,這樣的寫法

/* vim:ft=c:tabstop=8 */將因為後面的*/而出錯。

而採用第二種格式就沒有這個問題了,因為它將顯式地以一個冒號結束。

/* vim:set ft=c tabstop=2: */vim中要使modeline生效,必須開啟modeline選項,方法是執行set modeline或者加入vimrc中。
另外還可以設定vim讀取前幾行當作modeline,方法是set modelines=8設定為8行,預設是5行。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.