ghqディレクトリを移動するキーバインドを設定する
- shell
動機
- ghq で管理しているディレクトリに移動するコマンド、ちゃんとしたい
- 一番使うのに
g
一文字でエイリアスを張るという絶妙な手抜き技だった - キャンセルしたときの挙動とかも含めて、ちゃんと…!
- 一番使うのに
作業
move_ghq_directories() {
selected=`ghq list | fzf`
if [ ${#selected} -gt 0 ]
then
target_dir="`ghq root`/$selected"
echo "cd $target_dir"
cd $target_dir
zle accept-line
fi
}
zle -N move_ghq_directories
bindkey "^]" move_ghq_directories
(非常にわかりづらいが、一度 Ctrl + C で interrupt をかけている)
reverse した方が見やすそうとか、全画面乗っ取る必要ないんじゃないかとか、そもそも shell が下手すぎるとかは色々ありつつ、やりたいことは達成できた。元々のエイリアスを消してターンエンドである。