指定したマイナーモードを表示しない(diminish篇)

  • 7
    いいね
  • 0
    コメント

Emacsにいろんなパッケージをインストールしていくと、べんりな反面、画面下部の行(モードライン)が圧迫されていく。

以前、指定したマイナーモードを表示しないを書いたけれど、もっと良いやつがあるので紹介する。

mode-line-before

準備

Caskでuse-packageを使ってたらdiminish.elも依存関係としてインストールされるので、追加で導入するものはない。

パッケージマネージャを利用しない場合、 https://github.com/emacsmirror/diminish からファイルを持ってくると良い。

宣伝

毎週土曜の午後10時からLingrにてinit.el読書会をやってるので、興味があればおいでください
参加方法などは http://emacs-jp.github.io/reading-initel.html を参照のこと ヾ(〃><)ノ゙

diminish

safe-diminishは以前init.el読書会で上記のinit.orgを読んだときに知って拝借したもの。

init.el
(defmacro safe-diminish (file mode &optional new-name)
  "https://github.com/larstvei/dot-emacs/blob/master/init.org"
  `(with-eval-after-load ,file
     (diminish ,mode ,new-name)))

(safe-diminish "abbrev" 'abbrev-mode)
(safe-diminish "auto-complete" 'auto-complete-mode)
(safe-diminish "eldoc" 'eldoc-mode)
(safe-diminish "flycheck" 'flycheck-mode)
(safe-diminish "flyspell" 'flyspell-mode)
(safe-diminish "helm-mode" 'helm-mode)
(safe-diminish "paredit" 'paredit-mode)
(safe-diminish "projectile" 'projectile-mode)
(safe-diminish "rainbow-mode" 'rainbow-mode)
(safe-diminish "simple" 'auto-fill-function)
(safe-diminish "smartparens" 'smartparens-mode)
(safe-diminish "smooth-scroll" 'smooth-scroll-mode)
(safe-diminish "undo-tree" 'undo-tree-mode)
(safe-diminish "volatile-highlights" 'volatile-highlights-mode)
(safe-diminish "yasnippet" 'yas-minor-mode)

with-eval-after-loadを噛ますのは、ファイルがロードされたあとに確実にマイナーモードを隠せるようにするため。

第一引数に渡す文字列は、第二引数に渡すシンボルのモードが定義されてるファイル名を指定すると良い。実行時にそのマイナーモードがどのファイルで調べるにはM-x find-functionで探して、開かれたファイル名を指定するのが良い。

まあ、めんどくさいのでuse-packageを使ってたら、次に紹介する方法の方がややこしくない。

use-package

use-packageを利用してるなら、定義をまとめることができる。

init.el
(use-package yasnippet
  :diminish yas-minor-mode
  :init (yas-global-mode t))

:diminish hoge-minor-modeのように指定する。こちらで指定したものはsafe-diminishでは記述する必要はない。

筆者はuse-packageを利用しない一部のマイナーモードのみsafe-diminishを利用することにした。

init.elの修正

2コミットに分けて修正したので、参考にどうぞ。

最後に

mode-line-after

どうでも良いのだけれど、diminish.elの末尾に謎ポエムが書かれてるので暇なら読むと良い。

宣伝

毎週土曜の午後10時からLingrにてinit.el読書会をやってるので、興味があればおいでください
参加方法などは http://emacs-jp.github.io/reading-initel.html を参照のこと ヾ(〃><)ノ゙