3

現在、sgml-pretty-print を使用して emacs で xml ファイルをきれいに印刷できますが、これは手動のプロセスです。

  1. M-<
  2. Cスペース
  3. M->
  4. Mx sgml-pretty-print

これが自動的に行われることを望みます(または、少なくともそうするためのオプションがあります)。私はemacs/elispに不慣れで、方法がわかりません:

  1. emacs は、ファイルを開いたときに実行するコードを認識しています (これは files.el で始まりますか?)
  2. そのコードを自分のコードで上書きしたい場合、その方法
4

2 に答える 2

6

これでうまくいくはずです:

(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))))

重要な情報は、find-file-hookpoint-min (-max)、およびmajor-mode です

elisp について詳しく知りたい場合は、この質問を見てください。

于 2009-05-20T19:12:17.030 に答える
4

Trey Jackson's answerのやや単純な代替案です。~/.emacsこれをファイルに追加するだけです:

(add-hook 'sgml-mode-hook #'(lambda ()
  (sgml-pretty-print (point-min) (point-max))))
于 2009-05-20T19:16:59.187 に答える