blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

「print-mode-line mode(モードライン拡張minor-mode)」が便利だ

機能を手軽に追加できる、実用性にすぐれている拡張である。

ためしに以下の設定を .xyzzy に追加してみる。

; http://www2.ocn.ne.jp/~cheerful/script/xyzzy/mode/printmodelinemode.html
(load-library "print-mode-line-mode")
; (setq mode-line-format "[%i] %* %b (%M) | WC:%c/%w/%n | [%k:%l] %P %f")

; add: "selected: chars-selected"
(push (list "%c-s" 'ed::mode-line-string-wc-selected) *print-mode-line-mode-list*)
(defun editor::mode-line-string-wc-selected ()
  (if (eql (get-selection-type) 2)
	  (format nil "~A" (- (abs (- (selection-point) (selection-mark)))
						  (abs (- (save-excursion (goto-char (selection-point)) (current-line-number))
								  (save-excursion (goto-char (selection-mark)) (current-line-number))))))
	(format nil "~A" 0)))
(setq mode-line-format "[%i] %* %b (%M) | WC:%c/%w/%n (selected: %c-s) | place:%/%% |  [%k:%l] %P %f")
(print-mode-line-mode)

この設定によって、モードラインがつぎの画像のように変化する。

使い勝手がよいので、モードラインを拡張したいときに導入してはいかがだろうか。