2011/02/08

which-func-mode で関数名をヘッダーラインに表示するやつをトグルする

which-func-mode って普段は必要なけど、既存の Emacs Lisp にはクソ長い関数が多いのでたまに必要になる。Emacsテクニックバイブル ~作業効率をカイゼンする200の技~ の P.259 に載ってたのを toggle できるようにした。

(defun toggle-which-func-mode ()
  (interactive)
  (let ((comp (not which-func-mode)))
    (which-func-mode comp)
    (if which-func-mode
        (progn
          (delete (assoc 'which-func-mode mode-line-format) mode-line-format)
          (setq-default header-line-format '(which-func-mode ("" which-func-format))))
      (setq-default header-line-format nil))))

追記

ちょっとバグってた。
(defun toggle-which-func-mode ()
  (interactive)
  (which-func-mode)
  (if which-func-mode
      (progn
        (delete (assoc 'which-func-mode mode-line-format)
                mode-line-format)
        (setq-default header-line-format
                      '(which-func-mode ("" which-func-format))))
    (setq-default header-line-format nil)))

Emacsテクニックバイブル ~作業効率をカイゼンする200の技~

0 件のコメント:

コメントを投稿