Как связать второстепенный режим с определенным файлом или набором файлов на основе расширения? - PullRequest
9 голосов
/ 20 февраля 2011

В настоящее время каждый раз, когда я открываю текстовый файл в emacs, мне нужно M-x longlines-mode, чтобы включить перенос строк. Аналогично в clojure, я должен M-x paredit-mode (хотя он автоматически устанавливает основные режимы в text и clojure, соответственно).

Мне не нравится различие между основным и второстепенным режимами, но я думаю, что вышеупомянутые режимы незначительны. Есть ли способ:

  1. настроить emacs для автоматического открытия всех файлов clojure (* .clj) с paredit-mode?
  2. настроить определенный файл (скажем, notes.txt) для открытия с помощью longlines-mode. Я попытался добавить -^- mode: longlines -^- или -^- mode: longlines-mode -^-, как предлагается в других темах, но, похоже, это не работает. Я не могу найти документацию по синтаксису -^-, потому что не знаю, как он называется.

Ответы [ 4 ]

10 голосов
/ 20 февраля 2011

У меня есть это в моем файле .emacs

(require 'clojure-mode)
(defun turn-on-paredit () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'turn-on-paredit)
0 голосов
/ 01 апреля 2015

Вы можете поместить имя режима только в первую непустую строку, перед которой следует '- * -'.Другой текст также может появиться в строке.Например,

; -*-longlines-*-

или

; -*- mode: longlines -*-

Подробности можно увидеть в: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html

0 голосов
/ 05 июня 2013

Альтернативный код с таким же эффектом может быть (также не проверен, но должен работать):

(add-to-list 'auto-mode-alist '("\\.clj$\\'" . paredit-mode))
0 голосов
/ 20 февраля 2011

См. Раздел об ассоциациях файлов в этого учебного пособия .

По сути, вы хотите сделать следующее (не проверено, но должно работать):

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

Вы можете повторить ту же процедуру для текстовых файлов и режима длинных строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...