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


39.7 Shellモードのオプション

変数comint-scroll-to-bottom-on-inputが非nilの場合、挿入およびyankコマンドは、挿入する前に選択されたウィンドウを、バッファーの最後までスクロールします。デフォルトはnilです。

comint-scroll-show-maximum-outputが非nilの場合、ポイントが最後にあるとき到着した出力は、可能な限り有用なテキストを表示するために、テキストの最後の行がウィンドウの一番下になるようなスクロールを試みます(これはほとんどの端末のスクロール動作を真似た動作です)。デフォルトはtです。

comint-move-point-for-outputをセットすることにより、出力が到着したときにバッファーの最後にポイントをジャンプさせることができます — その前にポイントがバッファーのどこにあろうと関係ありません。値がthisの場合、選択されたウィンドウ内でポイントがジャンプします。値がallの場合、Comintバッファーを表示するすべてのウィンドウでポイントがジャンプします。値がotherの場合、カレントバッファーを表示する、選択されていないすべてのウィンドウでポイントがジャンプします。デフォルト値はnilで、これはポイントが最後にジャンプしないことを意味します。

comint-prompt-read-onlyをセットした場合、Comintバッファーのプロンプトは読み取り専用になります。

変数comint-input-ignoredupsは、連続する同じ入力を入力ヒストリーに保存するかを制御します。非nil値は、入力が前の入力と同じ場合は省略することを意味します。デフォルトはnilで、これは入力が前の入力と同じでも保存することを意味します。

ファイル名の補完をカスタマイズする3つの変数があります。変数comint-completion-addsuffixは、完全に補完されたファイル名またはディレクトリー名の最後にスペースまたはスラッシュを挿入するかを制御します(非nilは、スペースまたはスラッシュを挿入することを意味します)。comint-completion-recexactが非nilの場合、通常のEmacs補完アルゴリズムが1文字も追加できないようなときは、TABで一番短い利用可能な補完を選択するよう指示します。comint-completion-autolistが非nilの場合、補完が完全でないときは、利用可能なすべての候補をリストするよう指示します。

コマンド補完は通常、実行可能ファイルだけを考慮します。shell-completion-execonlynilにセットした場合は、実行可能ファイル以外も同様に考慮します。

変数shell-completion-fignoreは、Shellモードで無視するファイル名の拡張子のリストを指定します。デフォルトはnilですが、‘~’、‘#’、‘%’で終わるファイル名を無視するために("~" "#" "%")をセットするユーザーもいます。他のComintモードに関連するモードは、かわりに変数comint-completion-fignoreを使用します。

シェルコマンド補完の実装の詳細は、shell-dynamic-complete-command関数のlispドキュメントで見ることもできます。

pushd’の動作を設定することができます。shell-pushd-tohomeは、引数を与えない場合に‘pushd’が‘cd’のように振る舞うかを制御します。shell-pushd-dextractは、数引数を与えたときローテートするのではなくpopするかを制御します。shell-pushd-duniqueは、ディレクトリースタックにディレクトリーがない場合だけ追加するかを制御します。もちろん選択する値は背後のシェルに適合する必要があります。

Comintモードは、環境変数TERMの値を安全なデフォルト値にセットしますが、この値はいくつかの有用な機能を無効にします。たとえばカラーがサポートされているかの判断にTERMを使用するため、アプリケーションではカラーが無効になっています。したがってシステムのterminfoデータベースで定義されている、より高度な機能をもつ端末を選択できるように、Emacsはオプションcomint-terminfo-terminalを提供します。system-uses-terminfoが非nilの場合には、Emacsはこのオプションの値をTERMとして使用します。

comint-terminfo-terminalsystem-uses-terminfoはいずれも、リモートシステムの期待にこれらのオプションを合致させられるように接続ローカル変数として定義できます(接続ごとのローカル変数を参照)。