2012-09-28 126 views
2

我剛開始定製emacs。如果我想在emacs中啓用某種模式(全局),我需要在.emacs文件中添加一些代碼。 對於視覺模式,代碼將是(global-visual-line-mode t)。但是相同的語法不適用於show-paren-mode之類的東西。 那麼是否有任何方法可以識別語法必須用於全局啓用模式?或者這是必須知道的事情?在emacs中啓用模式

回答

4

使用Emacs幫助系統:

M-x describe-function RET show-paren-mode RET 

...或使用菜單欄中的 '幫助' 菜單:

Help => Describe => Describe Function... show-paren-mode RET 

,,,或鍵盤結合:

C-h f describe-function RET show-paren-mode RET 

最後,考慮使用Emacs的「定製」包(M-x customize RET),它將在您的.emacs文件中保留許多設置。或特定選項,從菜單欄:

Options => Customize Emacs => Specific Option... 

此外,在打字時在minibuffer,進入零個或多個字符,隨後TAB將提供完成選項。

2

我相信一個小模式是否是全局模式只是特定於該模式,因此要回答您的問題,您必須知道哪些是全局的,哪些是特定於緩衝區的。

我不太確定如何編寫代碼來做到這一點(我對Emacs Lisp有點新鮮),但是您可以編寫一個鉤子來啓用次要模式,只要您使用特定主模式選擇。看看這個Emacs的信息頁面,一切都在那裏。

從我瞭解的次要模式是不是全球性的緩衝特異性,因爲他們可能會帶來不便(如flyspell模式編寫代碼時:d)

3

通常有用的答案是使用customize。他們你不必知道確切的語法(或者甚至事實上任何Elisp);只需勾選複選框並啓用所有會話即可。

如果你真的關心Elisp,遺憾的是有三種不同的約定。

  • 正如你已經發現,許多模式有類似(activate-mode)(name-of-mode t)
  • 其他人有一個切換,其中一些工作與一個可選的數字參數不切換,但打開或關閉; (toggle-mode -1)無條件開啓。
  • 該模式可能有一個與之相關的變量,所以你會(setq mode-variable t)和模式會知道激活自己。這是一個邊緣情況。