LoginSignup
3
2

More than 5 years have passed since last update.

モードラインのモード名表示を短縮する

Last updated at Posted at 2018-08-19

今さらですが、
モードラインのモード名表示を短縮する方法はマイナーモードとメジャーモードでは異なります。

マイナーモード

マイナーモード名を短縮するときは、そのモードをロードしたあとでdiminishを使います。

(when (require 'diminish nil 'noerror)
  (eval-after-load "company"
      '(diminish 'company-mode "Cmp"))

メジャーモード

メジャーモード名を短縮するときは、diminishを使わず、そのモードにフックしてmode-name変数を直接書き変えます。

(add-hook 'emacs-lisp-mode-hook 
  (lambda()
    (setq mode-name "Elisp"))) 

実際の使用例

私はMELPAから落としたパッケージにはuse-package:diminishキーワードを使っています。→ こちらにまとめました。

対して、それ以外のEmacs標準のモード名はuse-packageを使わず下記のようにしています。1

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

(defmacro diminish-major-mode (hook new-name)
  `(add-hook ,hook #'(lambda ()
                    (setq mode-name ,new-name))))

;; minor mode
(diminish-minor-mode "eldoc" 'eldoc-mode "doc")

;; major mode
(diminish-major-mode 'emacs-lisp-mode-hook "Elisp")

参考

use-package でモード名を全消し or 短縮する
diminish
safe-diminish
cleaning up the mode-line


  1. safe-diminishありがたくパクらせていただきました。 

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2