GNU Common Lispで記述したCommon Lisp用コマンド・ヒストリ・パッケージ
このパッケージをインストールするとGNU Common Lispのコマンド・ラインでbashやcsh風のコマンド・ライン・ヒストリ機能が使えるようになります。後述するようにreadlineライブラリが備えていない機能も備えています。バージョン8.0からはキーボード・コマンドを自由に定義できるようになり Emacsモードに加え、viモードも備えました。
また、今回のバージョン 9.1では、バージョン 8.0で削除したバッチ編集機能を拡張した上で復活しました。
バッチ編集で指定するコマンドもユーザが定義したコマンドで指定できるようになりました。したがって、Emacs互換コマンド・モードであればバッチ編集コマンドもEmacs互換コマンドで指定でき、VI互換モードであれば VI互換編集コマンドで指定できます。
編集コマンドのモードに関わらずバッチ・コマンドのコマンド・モードを明示的に指定することもできます。したがって Emacs互換コマンド・モードで動作している際に VI互換のコマンド形式で記述されたバッチ編集コマンドを使うこともできます。
以下に概要を示しますが、バッチ編集モードを含めた詳しい使用法についてはHowToUse.txtをご覧下さい。
デフォルトのEmacsモードの場合、たとえば、 [127]> (con
まで入力してC-p(または上矢印)をタイプすると、過去に入力した行のうち、
[98]> (cons '(a b) '(c d))
など、先頭が"(con"で始まる行を探索して表示します。C-pをタイプする毎に更に過去の入力に遡って探索します。
[76]> (concatenate 'string '(#\a #\b #\c))
目的の行が表示された時点で単に<Enter>キーをタイプすれば、その時点で表示されている行全体が入力されます。探索に一致する行が多すぎるときは、更に入力する文字を増やせば探索で一致する行を絞り込むことができます。たとえば、上の例で
[127]> (conc
と"c"まで入力していれば、C-pをタイプすると一挙に
[76]> (concatenate 'string '(#\a #\b #\c))
が表示されます。探索に使用する文字は随時追加・削除できます。何も入力せずにC-pをタイプすれば入力履歴をひとつづつ遡って表示します。行過ぎてしまった場合はC-nをタイプする毎に逆順に入力履歴を表示してくれます。
等