Emacsにいろんなパッケージをインストールしていくと、べんりな反面、画面下部の行(モードライン)が圧迫されていく。
以前、指定したマイナーモードを表示しないを書いたけれど、もっと良いやつがあるので紹介する。
準備
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
を読んだときに知って拝借したもの。
(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
を利用してるなら、定義をまとめることができる。
(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コミットに分けて修正したので、参考にどうぞ。
- Use diminish instead of my/hiden-minor-modes · zonuexe/dotfiles@19d3909
- Use :diminish instead safe-diminish · zonuexe/dotfiles@6fa00d5
最後に
どうでも良いのだけれど、diminish.el
の末尾に謎ポエムが書かれてるので暇なら読むと良い。
宣伝
毎週土曜の午後10時からLingrにてinit.el読書会をやってるので、興味があればおいでください
参加方法などは http://emacs-jp.github.io/reading-initel.html を参照のこと ヾ(〃><)ノ゙