next up previous
Next: 4 コマンド名補完、ファイル名補完 Up: tcsh への誘い Previous: 2.2 csh の代りにいつでも tcsh

3 行編集、ヒストリ編集

emacs のようなテキスト・エディターを使っているときは、一度入力した文字 列をかなり自由に修正・編集できるのに、csh を使ってコマンドを入力している ときは、BS (BackSpace キー) を打つことで「一文字前の文字を削除する」くら いことしかできないのは「かったるい」と感じたことはないでしょうか。tcsh では標準の状態で emacs 互換の編集機能が使用可能です。

例えば一度打ってしまった文字の間違いを直すのに、たくさんの文字を消す必 要はなく、左矢印キーで戻ってから必要最小限の打ち直すだけですみます。

例1.
cp ~re00018/myfile . と打つつもりだったのに、 cp ~re00019/myfile . まで打ってから気が付いた場合、 BS (BackSpace) で ``9/myfile .'' を消してから打ち直さなくても、 左矢印キーで / の位置まで戻って、 BS で 9 だけ消してから 8 を打てば良い。
(単語単位に移動する M-b, M-f や、行頭・行末に移動する C-a, C-e などを 覚えていると、手早く修正位置まで移動できます。)

csh において、一度入力したコマンドを記憶していて、 それを呼び出して (必要があれば少し修正して) 使う 機能 (コマンドライン・ヒストリー機能) があることを習ったと思いますが、 今一つ使いづらいため、 あまり利用していない (だから忘れてしまった) 人も多いのではないでしょうか。 tcsh では、上下の矢印キーを用いることで、 簡単に以前に実行したコマンドを呼び出すことができます。

例2.
例えば code.c という C プログラムを作成しているとき、 コンパイル gcc -o code code.c と 実行 ./code を交互に実行することになるでしょう。
a308-06% gcc -o code code.c  
a308-06% ./code  
a308-06% gcc -o code code.c  
a308-06% ./code  
  $\vdots$  

こういう場合、毎回「上矢印キーを 2 回打って、\fbox{Enter}」とすれば良いこ とになります。

かなり前に入力したコマンドを呼び出したいときは、先頭の何文字かを打って から、M-p (ESC を打ってから p とタイプ) を打つとよいです。
例3.
かなり以前に打った cp コマンドをもう一度呼び出したい場合、 cpM-p と打ちます。
a308-06% cp ~re00018/gutenberg/Alice29.txt .  
                            $\vdots$         (間にたくさんコマンドを実行)  
a308-06% gcc -o code code.c  
a308-06% ./code  
ここで cpM-p と打つと  
a308-06% cp ~re00018/gutenberg/Alice29.txt .  
が現れる。  


next up previous
Next: 4 コマンド名補完、ファイル名補完 Up: tcsh への誘い Previous: 2.2 csh の代りにいつでも tcsh
Masashi Katsurada
平成17年6月8日