- cyphejor 20170518.2255(in MELPA)
- Shorten major mode names using user-defined rules
概要
長いモード名は貴重なモードラインのスペースを占有してしまいます。
そこで cyphejor.el はルールに従ってモード名を短縮します。
モード名を単語で区切り、 cyphejor-rules で指定されたルールに従って
新しい名前を mode-name に設定します。
どのような名前になるのかは、 cyphejor--cypher 関数で確かめられます。
(let ((cyphejor-rules '(:upcase ;該当しない単語は頭文字 ("bookmark" "→") ("buffer" "β") ("diff" "Δ") ("dired" "δ") ("emacs" "ε") ("fundamental" "Ⓕ") ("inferior" "i" :prefix) ;最初にiがつく ("interaction" "i" :prefix) ("interactive" "i" :prefix) ("lisp" "λ" :postfix) ;最後にλがつく ("menu" "▤" :postfix) ("mode" "") ;modeは表示させない ("package" "↓") ("python" "π") ("shell" "sh" :postfix) ("text" "ξ") ("wdired" "↯δ")))) (cyphejor--cypher "emacs-lisp-mode" cyphejor-rules) ; => "ελ" (cyphejor--cypher "lisp-interaction-mode" cyphejor-rules) ; => "iλ" (cyphejor--cypher "python-mode" cyphejor-rules) ; => "π" (cyphejor--cypher "package-menu-mode" cyphejor-rules) ; => "↓▤" (cyphejor--cypher "shell-mode" cyphejor-rules) ; => "sh" (cyphejor--cypher "dired-mode" cyphejor-rules) ; => "δ" (cyphejor--cypher "wdired-mode" cyphejor-rules) ; => "↯δ" ;; upcaseが指定してあるので単語がリストにない場合は先頭文字が大文字になる (cyphejor--cypher "org-mode" cyphejor-rules) ; => "O" (cyphejor--cypher "sh-mode" cyphejor-rules) ; => "S" (cyphejor--cypher "eshell-mode" cyphejor-rules) ; => "E" (cyphejor--cypher "reb-lisp-mode" cyphejor-rules) ; => "Rλ" ) ;;; upcaseをなくすとそのまま出てくる (let ((cyphejor-rules '(("mode" "") ("lisp" "λ" :postfix)))) (cyphejor--cypher "emacs-lisp-mode" cyphejor-rules) ; => "emacs λ" (cyphejor--cypher "org-mode" cyphejor-rules) ; => "org" (cyphejor--cypher "sh-mode" cyphejor-rules) ; => "sh" )
実際には常用するメジャーモード名の単語をcyphejor-rulesに含めないと
わかりにくくなるかと思われます。
マイナーモード名も同じくモードラインを占有してしまうので、
cyphejor--cypherの結果をdiminsh.elと併用するといいでしょう。
Fig1: lisp-interaction-modeがiλと表示される
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてcyphejorを使う方は
以下のコマンドを実行します。
M-x package-install cyphejor
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name cyphejor
設定 150927071505.cyphejor.el(以下のコードと同一)
(setq cyphejor-rules '(:upcase ("bookmark" "→") ("buffer" "β") ("diff" "Δ") ("dired" "δ") ("emacs" "ε") ("fundamental" "Ⓕ") ("inferior" "i" :prefix) ("interaction" "i" :prefix) ("interactive" "i" :prefix) ("lisp" "λ" :postfix) ("menu" "▤" :postfix) ("mode" "") ("package" "↓") ("python" "π") ("shell" "sh" :postfix) ("text" "ξ") ("wdired" "↯δ"))) (cyphejor-mode 1)
実行方法
$ wget http://rubikitch.com/f/150927071505.cyphejor.el $ emacs -Q -f package-initialize -l 150927071505.cyphejor.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。