如何根据扩展名将次要模式与特定文件或一组文件相关联?

时间:2011-02-20 18:15:42

标签: emacs clojure

目前,每次我在emacs中打开文本文件时,我都必须M-x longlines-mode才能启用换行。同样在clojure中,我必须M-x paredit-mode(尽管它会自动将主要模式分别设置为text和clojure)。

我对主要和次要模式之间的差异感到朦胧,但我认为上述模式很小。有办法:

  1. 配置emacs以自动打开paredit-mode的所有clojure(* .clj)文件?
  2. 使用longlines-mode配置要打开的特定文件(例如notes.txt)。我尝试按其他线程中的建议添加-^- mode: longlines -^--^- mode: longlines-mode -^-,但它似乎不起作用。我无法搜索-^-语法的文档,因为我不知道它叫什么。

4 个答案:

答案 0 :(得分:9)

我的.emacs文件中有这个

(require 'clojure-mode)
(defun turn-on-paredit () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'turn-on-paredit)

答案 1 :(得分:0)

请参阅this tutorial中有关文件关联的部分。

基本上,你想要做的是(未经测试,但应该有效):

(setq auto-mode-alist (cons '("\\.clj$" . paredit-mode) auto-mode-alist))

您可以对文本文件和长行模式重复相同的步骤。

答案 2 :(得分:0)

具有相同效果的替代代码可能(也未经测试,但应该有效):

(add-to-list 'auto-mode-alist '("\\.clj$\\'" . paredit-mode))

答案 3 :(得分:0)

您可以将模式名称放在第一个非空白行中,前面加上“ - * - ”。其他文字也可能出现在该行上。例如,

; -*-longlines-*-

; -*- mode: longlines -*-

您可以在以下位置查看详情: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html