改行を含む履歴を peco で絞り込み・選択する zsh widget
はじめに
peco は改行で入力を分ける為、改行が含まれた履歴を絞り込み・選択しようとすると単一の履歴であっても別々のアイテムとして扱われてしまい、意図した操作が行えない。
そこで、改行をヌル文字等で置換して一行にまとめたものを peco に入力。その後、peco の出力を入力時とは逆に置換することで打開を図る。
方法
以下を .zshrc 等の任意の設定ファイルに記載する。
whence peco &>/dev/null && function {
function peco_select_history {
emulate -L zsh
local delimiter=$'\0; \0' newline=$'\n'
BUFFER=${"$(print -rl ${history//$newline/$delimiter} | peco --query "$LBUFFER")"//$delimiter/$newline}
CURSOR=$#BUFFER
zle -Rc
zle reset-prompt
}
zle -N peco_select_history
bindkey "^Xh" peco_select_history
}
- キーバインドはお好みで
- 元の履歴中に
\0; \0
が存在すると → あっ…(察し)
Author And Source
この問題について(改行を含む履歴を peco で絞り込み・選択する zsh widget), 我々は、より多くの情報をここで見つけました https://qiita.com/waltari/items/3208552e322df44ca999著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .