Next: , Previous: , Up: Emacsからのシェルコマンドの実行   [Contents][Index]


39.4 Shellプロンプト

プロンプトとは、新しいユーザー入力を受け取る準備ができたことを表す、プログラムによるテキスト出力のことです。Comintモード(したがってShellモードも)は通常、サブプロセスからの出力にもとづいて、バッファーの一部をプロンプトとして自動的に判断します(具体的には、改行で終端されていない任意の出力行を受け取ったときは、プロンプトとみなします)。

Comintモードは、バッファーを2つのタイプのフィールド(fields)に分けます。1つは入力フィールド(ユーザーの入力がタイプされるところ)で、もう1つは出力フィールド(入力フィールド以外)です。プロンプトは出力フィールドの一部です。ほとんどのEmacs移動コマンドは、そのコマンドが複数行を移動しない限り、フィールド境界を超えることはありません。たとえば、ポイントがシェルコマンドの入力フィールドにある場合、C-aはポイントを入力フィールドの先頭、プロンプトの後に配します。内部的には、フィールドはテキストプロパティfieldを使って実装されています(Text Properties in the Emacs Lisp Reference Manualを参照してください)。

変数comint-use-prompt-regexpを非nil値に変更した場合、Comintモードは正規表現を使ってプロンプトを認識します(正規表現の構文を参照してください)。Shellモードでは、その正規表現は変数shell-prompt-patternにより指定されます。comint-use-prompt-regexpのデフォルト値はnilです。なぜならプロンプト認識のためのこの方法は信頼性が低いためです。しかし特殊な状況では、これを非nil値にセットしたいと思うこともあるでしょう。そのような場合、EmacsはComintバッファーをフィールドに分割しないので、一般的な移動コマンドは、テキストプロパティを使用せず、それらのコマンドがバッファーで通常行なうように振る舞います。しかし、バッファーを便利に操作するために、パラグラフ移動コマンドを使うことができます(パラグラフを参照してください)。Shellモードでは、Emacsはパラグラフ境界にshell-prompt-patternを使用します。

This page has generated for branch:emacs-29, commit:b0a5c33c8a12c381efbc6afce1b387feb85afaee to check Japanese translation.