2.3. パラグラフ整形、インデント
Emacs でテキストファイルを書く時に、パラグラフ整形、というのがある、と
いうのは、結構知らない人がいるんだろうか? ESC-q (コマンド名は
fill-paragraph) で、現在カーソルがあるパラグラフを、設定された
1行あたりの文字数 (必要なら ESC 数字 Ctrl-X f で変更可能)になるよ
うに整形する。
例えば
Emacs でテキストファイルを書く時に、パラグラフ整形、というのが ある、というのは、結構知らない人がいるんだろうか?
ESC-q (コマンド名はfill-paragraph) で、現在カーソルがあるパラ
グラフを、設定された1行あたりの文字数 (必要なら ESC 数字 Ctrl-X f で変更可能)になるように整形する。
が
Emacs でテキストファイルを書く時に、パラグラフ整形、というのが
ある、というのは、結構知らない人がいるんだろうか?ESC-q (コマン
ド名はfill-paragraph) で、現在カーソルがあるパラグラフを、設定
された1行あたりの文字数 (必要なら ESC 数字 Ctrl-X f で変更可能)に
なるように整形する。
となる。エディタで文章を編集する時にはこっちのほうが読みやすいと
思う。また、 auto-fill-mode を設定しておけば(あるいは、普通の文書
用のメジャーモードをそうしておけば)、書いている時にも勝手に改行し
てくれる。
プログラムを書く時にも同様の機能があり、言語と、それ用の設定を理
解して書いている時の自動インデントとか、領域の再インデントとかを
する。コマンドは
Ctrl-i (TAB): 現在の行をインデント
Ctrl-META-\: indent-region, マークからカーソルまでをインデント
あたりが私が知っているものである。なお、もちろん、これは、Emacs
がこうしたいと思うインデントになるので、それが自分のしたいものに
なるようにするためには、例えば c-indent-level とかいった変数を設
定する必要がある。私の .emacs (Vine だと .emacs.my.el のような気
が)に20年以上前に書いた設定はこんな感じである。
(setq text-mode-hook 'turn-on-auto-fill)
(setq mail-mode-hook '(lambda () (auto-fill-mode 1)))
(setq default-major-mode 'text-mode)
;; regulate indentation for new cc-mode.el
(defun my-c-mode-common-hook ()
(setq c-indent-level 4)
(setq c-basic-offset 4)
(c-set-offset 'case-label 4)
(c-set-offset 'statement-case-intro 4)
(c-set-offset 'statement-block-intro 4)
(setq c-continued-statement-offset 4)
(setq c-brace-offset 0)
(setq c-argdecl-indent 4)
(setq c-label-offset 0)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
hook で設定する必要があるのか、初期設定だけでよいのか不明だが、
hook でしておいていけないことはないであろう。なんかいらない設定も
いくつもあるような気もするし、現在(Emacs 20以降)だともっと簡単に
書ける気もする。