Hello Wor.log

IT系大学生4人による備忘録のようなもの

ターミナルで履歴を辿る時、CTRL+Rだとだるくない?って話(peco)

おはようございます、CPPXのP1です。 今週はちょっとした小ネタ?です。知っている人も多いかと思いますが、先輩に教えてもらったので備忘録として。

タイトル通りですね、履歴辿るとき、bashでCTRL+Rキーでf:id:cppx:20170727233639p:plain みたいな画面が出て履歴を辿れると思いますが、若干不便な感じがします。

そこで、bash

history | peco

みたいな感じに実行するとf:id:cppx:20170727234814p:plain こんな感じの画面が出てきて履歴を分かりやすく探せます。
pecoが無いよって言われた人はこの辺りからバイナリを落としてくるのが良いかと思われます。

後は、ちょっとむにむにして、.bashrc等に

function peco-select-history() {
    declare l=$(HISTTIMEFORMAT= history | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$READLINE_LINE")
    READLINE_LINE="$l"
    READLINE_POINT=${#l}
}
bind -x '"\C-r": peco-select-history'

みたいな感じで記述しておくと、CTRL+Rを押した時にf:id:cppx:20170727234636p:plain のようになってかなり便利に履歴を辿れるようになります。
この辺の書き方は色々あるようなので、気になったら調べてみてください。私はよく分かりませんでした。

以上です。ターミナル全然詳しくないので勉強したいですねー。 来週は競技プログラミング系のことを書きたい!