emacsでタブとEOFと全角空白の表示を。

emacsでタブとEOFと全角空白の色付き表示をするよう設定しました。
タブとスペースの区別が必要な編集をするときに、表示できないとしかたがなかったので。
あと、最終行に改行が入ってるのと入ってないのとで振る舞いが変わるコードもあるのでEOFも表示することに。
改行は、行末が空白のときに印がつけば改行位置が分かるので表示しません。

ここを参考に。
Meadow/Emacs memo: 表示のカスタマイズ ― 背景色,メニュー
タブも下線の方がうっとうしくないので、gray40の下線に変更しました。40という数字は大きいほど白っぽいです。

色名はここを参考にした。
font-lock

.emacsに以下を追加した。


;;(defface my-face-r-1 '((t (:background "gray15"))) nil)
(defface my-face-b-1 '((t (:background "gray"))) nil)
(defface my-face-b-2 '((t (:foreground "gray30" :underline t))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
;;(defvar my-face-r-1 'my-face-r-1)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)

(defadvice font-lock-mode (before my-font-lock-mode ())
  (font-lock-add-keywords
   major-mode
   '(("\t" 0 my-face-b-2 append)
     (" " 0 my-face-b-1 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     ;;("[\r]*\n" 0 my-face-r-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

;;show EOF
(defun set-buffer-end-mark()
  (let ((overlay (make-overlay (point-max) (point-max))))
    (overlay-put overlay 'before-string #("<EOF>" 0 5 (face highlight)))
    (overlay-put overlay 'insert-behind-hooks
                 '((lambda (overlay after beg end &optional len)
                     (when after
                       (move-overlay overlay (point-max) (point-max))))))))
(add-hook 'find-file-hooks 'set-buffer-end-mark)
  • このエントリーをはてなブックマークに追加
  • Pocket

コメント

  1. TSTR より:

    参考にさせていただきました.ありがとうございます!

  2. beiz23 より:

    どいたしましてー!

コメントを残す