目次
コマンド結果をフィルタリングしてくれます。
$ brew install peco
ps aux | peco
function find_cd() {
cd "$(find . -type d | peco)"
}
alias fc="find_cd"
function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(\history -n 1 | \
eval $tac | \
peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history
過去移動したディレクトリに移動します。
ctrl-fにバインドしています。
# cdr
if [[ -n $(echo ${^fpath}/chpwd_recent_dirs(N)) && -n $(echo ${^fpath}/cdr(N)) ]]; then
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
zstyle ':completion:*' recent-dirs-insert both
zstyle ':chpwd:*' recent-dirs-default true
zstyle ':chpwd:*' recent-dirs-max 1000
zstyle ':chpwd:*' recent-dirs-file "$HOME/.cache/chpwd-recent-dirs"
fi
# ### search a destination from cdr list
function peco-get-destination-from-cdr() {
cdr -l | \
sed -e 's/^[[:digit:]]*[[:blank:]]*//' | \
peco --query "$LBUFFER"
}
### search a destination from cdr list and cd the destination
function peco-cdr() {
local destination="$(peco-get-destination-from-cdr)"
if [ -n "$destination" ]; then
#BUFFER="cd $destination"
BUFFER="cd `echo $selected_dir | awk '{print$2}'`"
zle accept-line
else
zle reset-prompt
fi
}
zle -N peco-cdr
bindkey '^f' peco-cdr
alias s='ssh $(grep -iE "^host[[:space:]]+[^*]" ~/.ssh/config|peco|awk "{print \$2}")'
function peco-ssh () {
local selected_host=$(awk '
tolower($1)=="host" {
for (i=2; i<=NF; i++) {
if ($i !~ "[*?]") {
print $i
}
}
}
' ~/.ssh/config | sort | peco --query "$LBUFFER")
if [ -n "$selected_host" ]; then
BUFFER="ssh ${selected_host}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-ssh
bindkey '^\' peco-ssh
function peco-ssh () {
local selected_host=$(awk '
tolower($1)=="host" {
for (i=2; i<=NF; i++) {
if ($i !~ "[*?]") {
print $i
}
}
}
' ~/.ssh/config | sort | peco --query "$LBUFFER")
if [ -n "$selected_host" ]; then
ssh ${selected_host}
fi
}
migemoを使うことで、ローマ字入力のまま日本語をインクリメンタルサーチすることができます。
表示されるまでに、一瞬待たされます。
https://github.com/peco/migemogrep
$ brew tap peco/peco #公式以外のリポジトリをフォーミュラとしてHomebrewに追加する $ brew install migemogrep または $ go install github.com/peco/migemogrep@latest
~/.config/peco/config.json
{
"CustomFilter": {
"cmigemo": {
"Cmd": "migemogrep",
"Args": [ "$QUERY" ],
"BufferThreshold": 10000
}
},
"keymap": {
"C-j": "peco.SelectDown",
"C-k": "peco.SelectUp",
"C-f": "peco.ScrollPageDown",
"C-b": "peco.ScrollPageUp"
}
}
ctrl + rで選択できるfilterにMigemoが追加されて、ローマ字から日本語の文章をサーチすることができるようになります。
{
"CustomFilter": {
"cmigemo": {
"Cmd": "migemogrep",
"Args": [ "$QUERY" ],
"BufferThreshold": 10000
}
},
"InitialFilter": "Migemo"
}
https://github.com/mattn/peco-cmigemo
.zshrc
export PATH=$PATH:$HOME/bin
$ brew install go $ go install github.com/mattn/peco-cmigemo@latest $ cp ~/bin/peco-cmigemo ~/.peco/peco-cmigemo または $ go build peco-cmigemo.go $ brew install cmigemo $ ln -s /usr/local/opt/cmigemo/share/migemo/utf-8 ~/.peco/dict # homebrewで入れたcmigemoの辞書へシンボリックリンク
~/.config/peco/config.json
{
"CustomMatcher": {
"C/Migemo": [
"c:/dev/peco-cmigemo/peco-cmigemo.exe",
"$QUERY"
]
}
}
実行モジュール peco-cmigemo と cmigemo が使う辞書(UTF-8である必要があります)は同じ位置に dict/migemo-dict という形で置く必要があります。
$HOME/.config/peco/config.json
{
"keymap": {
"C-j": "peco.SelectDown",
"C-k": "peco.SelectUp",
"C-f": "peco.ScrollPageDown",
"C-b": "peco.ScrollPageUp"
}
}
一般向けサイト
ITエンジニア向けサイト
英語サイト
Portfolio
Copyright (c) 2025 インフラエンジニアのPC環境 All Rights Reserved.