vi風の、「行を左右にシフトする」コマンドを作る(<<, >>)。
Emacsでは文書の「型」に応じてテキストを整形するのが流儀らしい
けれど、な〜〜にもしないでいてくれるのが嬉しい。
字下げはシンプルにタブでいい。そしてタブはやっぱりスペース8個で
あって欲しい。
ということで、vi風に、選択範囲をタブ1個分左右にシフトする、そ
んなコマンドを作ってみました。
「右にシフト」は、選択範囲をタブ1個分字下げします。
「左にシフト」は、選択範囲の各行頭からタブ1個分のスペースを取
り除きます。
といっても実際にやるのはEmacsのコマンドで、ぼくは何もしていま
せん。
そして、相変わらずエラーや例外の処理は考えに入れてません。
1: (defun shift-left (n) 2: "shift left." 3: (interactive "p") 4: (indent-rigidly (region-beginning) 5: (region-end) 6: (* n (- tab-width)))) 7: 8: (defun shift-right (n) 9: "shift right." 10: (interactive "p") 11: (indent-rigidly (region-beginning) 12: (region-end) 13: (* n tab-width)))
Emacs流の「文書の型に応じて字下げの仕方を変えたりする」という
のは、便利な一面もあるだろうしうれしい局面もあるだろうし必須であ
る場合もあるでしょう。
が、ぼくが個人で使う分にはうれしくないことの方が多いので、よく 書く文書はみ〜〜んなTextモードにしています。という使い方をしてい ると、けっこう重宝するコマンドだと思います。
(2000.09.12)
(C) ©Copyright Noboru HIWAMATA (nulpleno). All rights reserved.