next up previous contents index
: 単語操作 : エディタ : コマンドの繰り返し実行   目次   索引

Lispプログラミングのための機能

以下のコマンドは,Lispプログラミングの際に有益である.

^Z ^F
(Forward Lisp form)
カーソルをフォーム1つ分進める.
^Z ^B
(Backward Lisp form)
カーソルをフォーム1つ分後退させる.

^Z ^K
(Kill next Lisp form)
カーソル直後のフォームをキルする.
^Z DEL
または^Z BS (Kill previous Lisp form)
カーソル直前のフォームをキルする.
ここで,「フォーム」とは,空白(スペース,TABCRLF) と括弧以外の文字で構成される「単語」であるか, さもなければ,対応する開き括弧と閉じ括弧(`('と`)', `['と`]',`{'と`}'のいずれかの組) で囲まれた部分(両端の括弧を含む)を指す. したがって,Lispでいうところのフォームとは若干異なることに注意されたい. Lispでは,例えば文字列中に現れる括弧は通常の文字とみなされる. したがって,

    (this form contains an unmatched "(")
はLispのフォームであるが,上の意味でのフォームではない.

MINEは自動インデント機能を備えている.

TAB
(Indent)
現在の行をインデントする.
TABは,入れ子のレベルにあわせて,現在の行を「インデント」する. つまり,適当な空白を行の先頭に挿入または削除することによって, Lispプログラムを読みやすいものにする. インデントの方法が何通りか考えられる場合は, まず第1候補のインデントを実行する. その直後にもう一度TABが入力されると,第2候補を実行する. つまり,TABが連続して入力されると,候補を次々に実行する. 最後の候補が実行されると,再び第1候補を実行する.これによって, ユーザはもっとも適切なインデントを容易に選択することができる.

CR
(Newline with indentation)
改行とインデントを行う.
CRは,行区切りをカーソルの直前に挿入し(その結果,カーソルは1行下に 移動する), カーソルの移動した行をインデントする.実行前にカーソルが行末 にあれば,新しい行をあけて,その適当なインデント位置にカーソルを 移動することになる.また,実行前にカーソルが2つのフォームの間に あれば,それらのフォームを2つの行に分けて,カーソル直後のフォームを 適当にインデントすることになる.もしインデントの候補が複数個あれば, その第1候補を使ってインデントするので,TABを使って最適な インデントを選択されたい.

インデントなしに,ただ行区切りの挿入のみを行うには,次のコマンドを使う.

LF
(Insert line separator)
行区切りをカーソルの直前に挿入する.
^O
(Open line)
行区切りをカーソルの直後に挿入する.
実行前にカーソルが行の終わりにあれば,どちらのコマンドも新しく空の行を すぐ下に生成することになるが,LFがカーソルを新しい行に移動させる のに対して,^Oを使った場合はカーソル位置は変化しない.



Tsuneyasu KOMIYA 平成14年2月22日