pecoで快適なターミナル環境を手に入れる
pecoを導入しターミナル操作で次のことができるようにします。
コマンド履歴をインクリメンタルサーチできるようにする
ディレクトリ移動を高速化する
環境
Ubuntu 20.04 LTS
GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
インストール
$ sudo apt install peco
pecoでコマンド履歴検索
bashでもpercolをイイ感じに使う方法 を参考にさせていただきました。以下の例では、新しく追加した関数である_replace_by_historyをC-rに割り当て、既存のreverse-search-historyはC-xrに変更しています。 code:.bashrc
# command history
_replace_by_history() {
local l=$(HISTTIMEFORMAT= history | tac | sed -e 's/^\s*0-9\+\s\+//' | peco --query "$READLINE_LINE") READLINE_LINE="$l"
READLINE_POINT=${#l}
}
bind -x '"\C-r": _replace_by_history'
bind '"\C-xr": reverse-search-history'
enhancdで高速なディレクトリ移動
ディレクトリ移動を快適にするプラグインであるenhancdを導入します。enhancdはホームディレクトリにGitHubからcloneし、.bashrc内で~/enhancd/init.shを読み込むようにしています。なお、pecoやpercolなどのインタラクティブ・フィルタリングツールに依存しているため、どれか1つ以上を事前にインストールしている必要があります。 code:Install enhancd
$ cd ~
$ git clone git@github.com:b4b4r07/enhancd.git
code:.bashrc
# recently moved directories
ENHANCD_HYPHEN_ARG="-ls"
ENHANCD_HYPHEN_NUM=50 # 履歴数を50に拡張(デフォルトは10)
ENHANCD_DOT_ARG="-up"
ENHANCD_DISABLE_HOME=1
source ~/enhancd/init.sh
bind -x '"\C-n": cd -ls'
See Also