わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

上矢印連打を減らそう

過去に実行したコマンドを探すときに,上矢印の連打や長押しをしています.

毎回毎回コマンドを打ち込むよりは効率的と言えますが,コマンドが見つからずやきもきするとか,上を押しすぎて下に戻さないといけないとかいうがあると,後ろで見ていてもちょっと視線を外したくなります.

上矢印の連打や長押しを減らす方法は,いろいろあります.まずは一つ覚えて,どんどん他のも覚えていきましょう.

一つ.直前のコマンドは,「!![Enter]」で実行できます.前の前なら「!-2[Enter]」です.でもこれだけなら,「[↑][Enter]」や「[↑][↑][Enter]」のほうがタイプ数が少ないのでお勧めしません.しかし,コンパイル・実行・コンパイル・実行…を繰り返しているなら,「!-2 && !![Enter]」としてみてください.すると,コンパイルを行い,成功すれば,実行をしてくれます.あとは,「[↑][Enter]」を使えばいいでしょう.

一つ.まずは「history」を実行してみてください.番号とコマンドがずらずらと出てきます.これがコマンドの履歴(ヒストリ)というものです.88の横に出ているコマンドを実行したければ「!88[Enter]」です.88と89を連続して実行したければ,「!88;!89[Enter]*1です.これを活用すれば,上矢印を連打して,行き過ぎて下に戻さないといけないということがなくなります.

一つ.「!cc[Enter]」とすると,「最近実行したコマンドの中で,『cc』から始まるもの」を探してそれを実行してくれます.でもあまりこれは使わないかな.Enterを押すまで,どんなコマンドが実行されるかわからないので.ccを10〜20回分くらい前に実行して,かつその間にccを実行しなかった,というときに効果的です.

一つ.まずはCtrl-rを押します.「(reverse-i-search)`':」と出てきます.ここで例えば「cc」とタイプしたら,「最近実行したコマンドの中で,『cc』を含むもの」を探して,そのコマンドを見せてくれます.ここで[Enter]を押せば,それを実行してくれます.コマンドが出てくるけど,これではなく,もっと前に実行したコマンドを探したいなら,さらにCtrl-rを押します.出てきたコマンドを一部変更(してから実行)したいときは,左右の矢印を押すといいでしょう.この検索をキャンセルしたいときは,Ctrl-gです.

*1:コマンドの間に「;」を置けば,これは,左のコマンドの成否に関わらず,続いて右を実行します.コマンドの間に「&&」を置けば,左のコマンドを実行して正常終了のときに限り,右も実行します.「;」にせよ「&&」にせよ,前後に空白は,あってもなくてもかまいません.