突っ走り書き

見せるほどのものでは..

zsh と peco でヒストリ補完

ここを参考に,流行りの peco を使って zsh のヒストリからコマンドを検索する関数を作ったので,そのメモ. 次の内容を .zshrc に追加すれば,インクリメンタルなヒストリ補完ができる.

# シェル関数を定義する
function run-command-with-peco() {
   # コマンドラインに peco で選択した文字列を代入する
   BUFFER="`history -n 1 | tac | peco --query "$BUFFER"`"
   # カーソルの位置をコマンドラインの末尾に移動
   CURSOR=$#BUFFER
   # peco による出力をクリアする
   zle clear-screen
}
# シェル関数をウィジェットとして登録
zle -N run-command-with-peco
# ウィジェットをバインド
bindkey '^r' run-command-with-peco

メモ