rule を指定して align
Emacs 標準のパッケージに align.el がある。こいつは mode とかコンテキストを見て、良きにはからって桁をそろえてくれるんだけど、自分で rule を指定したい事もある。標準では付いてなかったからこんなものを作ってみた。
modes と run-if を rule から除いてるのが重要。じゃないと条件に一致しない限りその rule を使ってくれない。
尋ねてくる rule の一覧は align-rules-list を使わないで、専用の alist を使うのもいいかもしれない。
(defun align-with-rule (beg end title) (interactive (list (region-beginning) (region-end) (intern-soft (completing-read "Align rule: " (mapcar (lambda (rule) (list (symbol-name (car rule)))) align-rules-list) nil t)))) (let ((rule (assq title align-rules-list))) (align-region beg end nil (list (remove-if (lambda (x) (and (consp x) (memq (car x) '(modes run-if)))) rule)) nil)))