5

我正在尝试进行设置,.emacs以便任何以字母开头的文件都将其makefile设置为 makefile 模式。例如makefile-something应该处于makefile 模式。

这不起作用:

(setq auto-mode-alist (cons '("^makefile" . makefile-mode) auto-mode-alist))

但这确实:

(setq auto-mode-alist (cons '("makefile" . makefile-mode) auto-mode-alist))

谁能解释为什么?

4

3 回答 3

7

是因为文件名前面有路径组件,试试:

"/makefile[^/]*$"

请参阅http://www.gnu.org/s/emacs/manual/html_node/elisp/Auto-Major-Mode.html(页面底部)

EDI:根据 Sean 评论更正正则表达式

于 2010-11-10T05:17:17.217 回答
1

所以这只是一个有根据的猜测,但我注意到其他auto-mode-alist想要匹配文件名开头的正则表达式不使用^,他们使用/. 例如:

("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode)

(来自 Emacs 23.2.1)基于此,我认为正则表达式可能应用于文件的完整路径名,而不是基名。所以试试

(setq auto-mode-alist (cons '("/makefile" . makefile-mode) auto-mode-alist))

反而。

于 2010-11-10T05:14:57.247 回答
0

只是为了方便起见,尝试

 (add-to-list 'auto-mode-alist ...
于 2010-11-10T05:17:48.673 回答