TCSH の拡張 (ヒストリー展開後の一旦停止)
作成 小金丸信幸
E-Mail: kogane@koganemaru.co.jp
修正日 平成15年(2003年)06月16日 (月)
はじめに
みなさんは newcsh というものをご存知でしょうか。csh をベースにパッ
チを当てて作成するもので、csh の機能に加えてコマンドラインを修正で
きるようになっています。それでは tcsh と同じではないかと思われるで
しょう。その通りで、tcsh が出現すると newcsh はいつのまにか消え失
せて tcsh にとって変わられました。しかし newcsh には tcsh にない機
能があります。それは、ヒトリー展開が起こると展開後のコマンドを表示
して一旦停止するというものです。例えば
% more some.c
% vi !*
を行うと tcsh の場合は、即 vi が実行されますが、newcsh の場合は
% more some.c
% vi !*
% vi some.c
"vi !*" でエンターを行うと "vi some.c" と展開して表示た後一旦停止
します。そして、この行を再び編集することもできます。これはちょうど
ヒストリーに :p を付けた働きと同じです。
% more some.c
% vi !*:p
% vi some.c
私は tcsh を使い始めて、ヒストリー後の停止がないため、戸惑いました。
それで、tcsh にこの機能を追加しました。シェル変数 pausehist が設定
されていれば、この機能が働きます。設定されていなければ、普通の tcsh
と同じになります。
% set pausehist # 普通 .cshrc か .tcshrc に設定します。
ヒストリー展開後、即実行する場合にエンターを二度打ちしなけらばなり
ませんが、キー位置が同じですから、なれれば、特に不便ではないと思い
ます。
1. ソースファイルの準備
FreeBSD 4.8-RELEASE のソースファイルを準備します。
・ /usr/src にソースファイルがあって、直接修正してよいのであれば、そ
のままでかまいません。
・ そうでなければ、/usr/src 下の contrib/tcsh と bin/csh をいずれかの
場所にコピーしてください。bin/Makefile bin/Makefile.inc のコピーも
忘れないように注意してください。
・ ソースファイルを展開していないのであれば、リリースファイルからいず
れかの場所にソース展開をしてください。つぎのような手順で必要な
contrib/tcsh と bin/csh だけを取り出すことができます。
% set x=somewhere/tcshmake
% cd somewhere/4.8-RELEASE/src
% cat scontrib.?? | tar -C $x -xvzf - contrib/tcsh
% cat sbin.?? | tar -C $x -xvzf - bin/Makefile\* bin/csh
2. パッチファイル
tcsh.6.12.diff.tar.gz ファイルを準備してください。
ファイルの内容は次の通りです。
README 本ファイル
tcsh.6.12.diff パッチファイル
ftp://ftp.koganemaru.co/jp/pub/FreeBSD/tcsh.6.12.diff.tar.gz
に置いています。
3. パッチを当ててコマンドの作成
% cd ...somewhere/contrib
% patch -p1 <tcsh.6.12.diff
% cd ...somewhere/bin/csh
% make obj depend
% make
を行うと対応する /usr/obj/...somewhere/bin/csh に実行形式の csh が作
成されます。
csh, tcsh (注)を置き換えて構わないなら、root になって
# make install
を行えばよいでしょう。
もし、作成された、csh がダイナミックリンク形式の実行形式なら
bin/Makefile.inc ファイルのコピー忘れです。
make のオプションとして
% make NOSHARED=YES
を指定すれば、スタテックリンク形式の実行形式の csh が作成できます。
注) FreeBSD 4.8-RELEASE では csh と tcsh は同一でリンクされたファ
イルになっています。
4. その他
set reedithist は set pausehist と同様です。
5. 改版履歴
01 版 作成日 平成14年(2002年)03月12日 (火)
新規作成
02 版 修正日 平成15年(2003年)06月16日 (月)
FreeBSD 4.8-RELEASE, tcsh.6.12 に対応した。
--
(有)小金丸コンピュータエンジニアリングサービス (福岡県大野城市)
小金丸 信幸 (Nobuyuki Koganemaru)
E-Mail: n-kogane@syd.odn.ne.jp
E-Mail: kogane@jp.FreeBSD.org
E-Mail: kogane@koganemaru.co.jp
URL: http://www.koganemaru.co.jp