我以为这样做很简单,但是我被困住了。
当我在〜/ .emacs中添加八度模式时:
(add-to-list 'auto-mode-alist ("\\.m$" . octave-mode))
Run Code Online (Sandbox Code Playgroud)
打开一个Octave文件.m,我转而以OBJC主模式结束...这是因为auto-mode-alist包含:
(\.m\' . objc-mode)
Run Code Online (Sandbox Code Playgroud)
在A列表中排名第一。
我试过了:
(setq auto-mode-alist (delete '( \.m\' . objc-mode) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)
我什至尝试过:
(setq ama '())
(setq objc '(\.m\' . objc-mode))
(dolist (item auto-mode-alist)
(if (not (eq (cdr (last objc)) (cdr (last item))))
(setq ama (list ama item))))
(setq auto-mode-alist ama)
Run Code Online (Sandbox Code Playgroud)
从列表中删除objc-mode或确保octave-mode取代它的任何建议都很好。
这里基本上有两个问题。一种是如何从列表中删除元素。另一个是如何以*.m八度模式自动打开文件。您无需删除该元素即可覆盖它。提供的表格
(add-to-list 'auto-mode-alist ("\\.m$" . octave-mode))
Run Code Online (Sandbox Code Playgroud)
导致错误。相反,您应该使用
(add-to-list 'auto-mode-alist '("\\.m$" . octave-mode))
Run Code Online (Sandbox Code Playgroud)
或更好:
(add-to-list 'auto-mode-alist '("\\.m\\'" . octave-mode))
Run Code Online (Sandbox Code Playgroud)
这两种形式会将元素添加到关联列表的开头,这意味着将首先根据该文件名检查文件名,而永远不会将其添加到列表下方的objc-mode元素。
如果您确实要从列表中删除该元素,则有两种方法。
一种仅删除确切的con单元格的方法'("\\.m\\'" . objc-mode):
(setq auto-mode-alist (delete '("\\.m\\'" . objc-mode) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)
删除关联列表中与"\\.m\\'"以下内容关联的所有内容的另一种方法:
(require 'cl-lib)
(cl-remove "\\.m\\'" auto-mode-alist :test 'equal :key 'car)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |