Next: , Previous: , Up: テキスト   [Contents][Index]


33.5 ユーザーレベルの挿入コマンド

このセクションではテキスト挿入のための高レベルコマンド、ユーザーによる使用を意図しているがLispプログラムでも有用なコマンドについて説明します。

Command: insert-buffer from-buffer-or-name

このコマンドはfrom-buffer-or-name (存在しなければならない)のアクセス可能範囲全体をカレントバッファーのポイントの後に挿入する。マークは挿入されたテキストの後に残される。値はnil

Command: self-insert-command count &optional char

このコマンドは文字charを挿入する。これをポイント前でcount回繰り返してnilをリターンする。ほとんどのプリント文字はこのコマンドにバインドされる。通常の使用ではself-insert-commandはEmacsでもっとも頻繁に呼び出される関数だが、Lispプログラムではそれをキーマップにインストールする場合を除いて使用されるのは稀。

インタラクティブな呼び出しではcountは数プレフィクス引数。

自己挿入では入力文字はtranslation-table-for-inputを通じて変換される。文字の変換を参照のこと。

これは、入力文字がテーブルauto-fill-chars内にあり、auto-fill-functionが非nilなら常にそれを呼び出す(オートfillを参照)。

このコマンドはAbbrevモードが有効で、かつ入力文字が単語構成構文をもたなければabbrev展開を行う(abbrevとabbrev展開構文クラスのテーブルを参照)。さらに入力文字が閉カッコ構文(close parenthesis syntax)をもつ場合にはblink-paren-functionを呼び出す責任もある(カッコの点滅を参照)。

このコマンドは最後にフックpost-self-insert-hookを実行する。たとえばテキストがタイプされたときのように自動的に再インデントするためにこれを使用できる。このフックのいずれかの関数がリージョン(リージョンを参照)にたいして作用する必要があるなら、post-self-insert-hookの関数が呼び出される前にDelete Selectionモード(Delete Selection in The GNU Emacs Manualを参照)がリージョンを削除しないようにする必要がある。これを行うにはDelete Selectionモードにリージョンを削除しないように告げる特別なフックself-insert-uses-region-functionsnilをリターンする関数を追加すること。

self-insert-commandの標準的な定義にたいして、独自の定義による置き換えを試みてはならない。エディターコマンドループはこのコマンドを特別に扱うからだ。

Command: newline &optional number-of-newlines interactive

このコマンドはカレントバッファーのポイントの前に改行を挿入する。number-of-newlinesが与えられたら、その個数の改行文字が挿入される。インタラクティブな呼び出しでは、number-of-newlinesはプレフィクス数引数。

この関数はカレント列数がfill-columnより大、かつnumber-of-newlinesnilならauto-fill-functionを呼び出す。このコマンドは改行を挿入するためにself-insert-commandを呼び出して、続けてauto-fill-functionを呼び出すことにより前の行をブレークする(オートfillを参照)。auto-fill-functionが通常行うのは改行の挿入であり、最終的な結果としてはポイント位置と、その行のより前方の位置という2つの異なる箇所に改行を挿入する。number-of-newlinesが非nilならnewlineはauto-fillを行わない。

このコマンドはインタラクティブな呼び出し、またはinteractiveが非nilならフックpost-self-insert-hookを実行する。

このコマンドは左マージンが0でなければ、左マージンにインデントする。fillのマージンを参照のこと。

リターン値はnil

Variable: overwrite-mode

この変数はoverwriteモードが効力をもつかどうかを制御する。値はoverwrite-mode-textualoverwrite-mode-binary、またはniloverwrite-mode-textualはテキスト的なoverwriteモード(改行とタブを特別に扱う)、overwrite-mode-binaryはバイナリーoverwriteモード(改行とタブを普通の文字と同様に扱う)を指定する。