Edited at

pecoでsshするやつ

More than 3 years have passed since last update.


peco+ssh


超簡易版

alias s='ssh $(grep -iE "^host[[:space:]]+[^*]" ~/.ssh/config|peco|awk "{print \$2}")'

s[Enter]とすることで絞り込みしてssh接続できます。


zsh

コメントで頂いてものを少しだけ修正してみました。

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

bind-keyについてはお好みで。


bash

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
}