cshやbashをはじめとする各種シェルは、‘!’および‘^’で始まる履歴参照をサポートしています。シェルモードはこれらの構文を認識し、履歴置換を実行できます。
履歴参照を挿入して TAB と入力すると、入力履歴から一致するコマンドが検索され、必要に応じて置換が行われ、その結果が履歴参照に代わってバッファに配置されます。例えば、! m v TAB を使って ‘mv’ で始まる直近のコマンドを取得できます。必要に応じてコマンドを編集し、その後 RET と入力してコマンドをシェルに再送信できます。
シェルモードでは、履歴参照をシェルに送信する際に、バッファ内でそれらを展開することを任意で設定できます。この機能を有効にするには、変数 comint-input-autoexpand に input を設定してください。また、SPC をコマンド
comint-magic-space にバインドすることで、SPC に履歴展開を行わせることができます。キーバインドのインタラクティブな変更を参照してください。
シェルモードでは、プロンプトの後に履歴参照が続く場合にそれを認識します。シェルモードがどのようにプロンプトを認識するかについては、シェルプロンプトを参照してください。