Запустите sgml-pretty-print при открытии XML-файла в Emacs? - PullRequest
3 голосов
/ 20 мая 2009

В настоящее время я могу использовать sgml-pretty-print для красивой печати xml-файла в emacs, но это ручной процесс:

  1. M - <</li>
  2. C-пространство
  3. M ->
  4. M-x sgml-pretty-print

Я бы хотел, чтобы это происходило автоматически (или, по крайней мере, у меня была возможность сделать это). Я новичок в Emacs / Elisp, и не понимаю, как:

  1. emacs знает, какой код запускать при открытии файла (это начинается в files.el?)
  2. Если вы хотите переопределить этот код своим собственным, как это сделать

Ответы [ 2 ]

6 голосов
/ 20 мая 2009

Это должно помочь вам:

(add-hook 'find-file-hook 'my-sgml-find-file-hook)
(defun my-sgml-find-file-hook ()
  "run sgml pretty-print on the file when it's opened (if it's sgml)"
  (when (eq major-mode 'sgml-mode)
    (sgml-pretty-print (point-min) (point-max))))

Ключевыми элементами информации являются ловушка для поиска файлов , точка-мин (-max) и основной режим .

Если вы хотите узнать больше об elisp, вы можете взглянуть на этот вопрос , в котором даются некоторые подсказки о том, как разобраться.

4 голосов
/ 20 мая 2009

Немного более простая альтернатива Ответ Трея Джексона . Просто добавьте это в ваш ~/.emacs файл:

(add-hook 'sgml-mode-hook #'(lambda ()
  (sgml-pretty-print (point-min) (point-max))))
...