Как включить подсветку синтаксиса для файлов Emacs

Мой .emacs для меня как дорожная карта, где я получаю много файлов. Их расширение .emacs: например,

 fileName.emacs

Проблема в том, что только ~/.emacs имеет подсветку синтаксиса.

Я хотел бы иметь подсветку синтаксиса для всех исходных файлов, которые заканчиваются на .emacs.

Как включить подсветку синтаксиса для всех исходных файлов .emacs?


person Léo Léopold Hertz 준영    schedule 26.06.2009    source источник


Ответы (2)


да. Я предполагаю, что это файлы lisp, поэтому вам нужно, чтобы Emacs автоматически находился в режиме lisp при просмотре этих файлов. Есть два решения:

  1. Самое простое — поменять расширение на .el. По умолчанию они открываются в lisp-режиме.

  2. Если по какой-то причине вы действительно хотите использовать расширение .emacs, вы можете добавить это где-нибудь в свой файл ~/.emacs:

    (setq auto-mode-alist 
          (append '((".*\\.emacs\\'" . lisp-mode))
                  auto-mode-alist))
    

auto-mode-alist — это список, который Emacs использует для определения основного используемого режима. Каждый элемент — это список, первый — это регулярное выражение Emacs, которое Emacs использует для проверки имени файла, и если оно истинно, он использует режим, указанный в третьем элементе.

(Я не знаю, что такое второй элемент, я никогда не использовал его.)

Я настоятельно рекомендую вариант 1, хотя.

person AFoglia    schedule 26.06.2009
comment
@masi В принятом ответе вам, вероятно, следует использовать режим emacs-lisp вместо режима lisp, поскольку все эти файлы будут в elisp, а не в lisp. Различие незначительное и, вероятно, не имеет большого значения, но ребята из emacs, должно быть, по какой-то причине написали отдельный emacs-lisp-mode, верно? - person vedang; 17.08.2009
comment
Второй пункт — это обозначение для буквальных минусов в кавычках. Недостатком является низкоуровневый строительный блок списков. '(a . (b . nil)) (cons 'a (cons 'b nil)) '(a b) (список a b) - это четыре различных способа выражения одного и того же буквального списка. - person Justin Smith; 17.01.2010

Вы можете установить режим в первой непустой строке файла:

;-*-Lisp-*-

Это комментарий для Lisp, но он заставляет Emacs переключаться в режим Lisp при чтении его в буфер (ссылка).

person Svante    schedule 26.06.2009