ZLE
Zsh Line Editor
例
code:.zshrc
function select-history() {
BUFFER=$(history -n -r 1 | fzf --no-sort +m --query "$LBUFFER" --prompt="History > ")
CURSOR=$#BUFFER
}
zle -N select-history
bindkey '^r' select-history
標準変数
BUFFER
コマンドラインに入力中の文字列が格納
バッファ文字列と呼んでる
BUFFERに値を代入すればコマンドラインの文字それに上書きされる
関数内で例えばBUFFER="xxx${BUFFER}yyy"と書いておいて、
$ aaaの状態で関数を実行すると、$ xxxaaayyyの状態になる
LBUFFER,RBUFFER
現在のcursor位置よりも左, 右のバッファ文字列
RBUFFERはカーソルの足元の文字を含む
CURSOR
cursor位置が格納される変数
0始まりの数値
この変数に数値を入れると、コマンドラインのcursor位置が移動する
例
一つ右に移動させたいならCURSOR+=1
BUFFERの最右に移動させたいならCURSOR=$#BUFFER
zle -N hoge
bindkey "^j" hoge
これで任意の場所でhogeをctrl-jで呼べるようになる
ユースケース