以前のシェルコマンドから、次に古いコマンドを取り出します(comint-previous-input
)。
以前のシェルコマンドから、次に新しいコマンドを取り出します(comint-next-input
)。
以前のシェルコマンドにたいして、インクリメンタルregexp検索を開始します(comint-history-isearch-backward-regexp
)。
ヒストリーから次のコマンドを取り出します(comint-get-next-from-history
)。
以前のシェルコマンドから引数を1つ取り出します(comint-input-previous-argument
)。
そのバッファーのシェルコマンドのヒストリーを、別のウィンドウに表示します(comint-dynamic-list-input-ring
)。
Shellバッファーは、以前に入力したシェルコマンドのヒストリーを提供します。ヒストリーからシェルコマンドを再利用するには、編集コマンドM-p、M-n、M-rを使用します。これらは、ミニバッファーではなくShellバッファーを操作する点を除き、ミニバッファーヒストリーコマンド(ミニバッファーヒストリーを参照してください)と同じように機能します。またShellバッファー内でのM-r
は、シェルコマンドヒストリーにたいするインクリメンタル検索を呼び出します。
M-pは、シェルバッファーの最後から以前のシェルコマンドを取り出します。連続してM-pを使用すると、古いシェルコマンドを連続して取り出し、その度にシェル入力の候補として表示されているテキストを置き換えます。M-nも同様に機能しますが、これはバッファーから、より新しいシェルコマンドを連続して探します。C-UPはM-pと同様に機能し、C-DOWNはM-nと同様に機能します。
ヒストリー検索コマンドM-rは、以前のシェルコマンドにたいしてインクリメンタル正規表現検索を開始します。M-rとタイプした後に、検索したい文字列か正規表現のタイプを開始します。するとマッチする最後のシェルコマンドがカレント行に表示されます。インクリメンタル検索コマンドは通常の効果をもちます — たとえばC-sおよびC-rは前方または後方に、次のマッチを検索します(インクリメンタル検索を参照してください)。探している入力が見つかったら、検索を終了するためにRETをタイプします。これにより、入力がコマンドラインに配されます。ヒストリーリストを操作する前にタイプしていた入力の一部は、ヒストリーリングの先頭または最後に達したときに復元されます。
以前に実行した一連のシェルコマンドを、同じ順番で再実行できたら便利なこともあります。これを行なうには、最初に順番に再実行する1番目のコマンドを検索します。その後C-c C-xとタイプします。これは次のコマンド — つまり再実行したコマンドの次のコマンドを取り出します。それからRETでそのコマンドを実行します。C-c C-x RETを繰り返しタイプすることにより、連続する複数のコマンドを再実行することができます。
コマンドC-c .
(comint-insert-previous-argument
)は、BashのESC
.のように、以前のコマンドから個別に引数をコピーします。一番簡単な使い方は、以前のシェルコマンドから最後の引数をコピーする方法です。プレフィクス引数nを指定すると、n番目の引数をコピーします。繰り返しC-c
.とタイプすることにより、さらに古いシェルコマンドからコピーします。この場合、常に同じnの値を使用します(C-c
.を繰り返すときは、プレフィクス引数を与えないでください)。
comint-insert-previous-argument-from-end
を非nil
値にセットすると、C-c
.はかわりに最後から数えてn番目の引数をコピーします。これはzsh
のESC
.をエミュレートしたものです。
これらのコマンドは、以前のシェルコマンドのテキストを、シェルバッファー自身からではなく、特別なヒストリーリストから取得します。したがってシェルバッファーを編集したり、広い範囲をkillしても、これらのコマンドがアクセスするヒストリーに影響はありません。
以前のシェルセッションを参照できるように、一部のシェルではコマンドヒストリーがファイルに保存されます。自身のコマンドヒストリーを初期化するために、Emacsは選択されているシェルのコマンドヒストリーを読み込みます。ヒストリーファイルの名前は、shell-history-file-name
で指定された文字列です。このユーザーオプションがt
なら、コマンドヒストリーは読み込まれません。値がnil
なら環境変数HISTFILE
で指定されたファイル、あるいはbashなら~/.bash_history、kshなら~/.sh_history、zshは~/.zsh_history"、それ以外のシェルなら~/.historyから読み込まれます。