昨日発見してしまったWarpの不便な点についてだ。
前回の記事
最近Warpというターミナルエミュレーターを使ってみている。
デザインがモダンな感じでなんかAI機能も搭載されていて面白いなと思っている。
しかし1つだけ不便に感じている部分がある。それは.zshrc
の設定のbindkey
が使えないというものだ。
Warpのリポジトリのissueとしても上がっている。
とは言っても私がbindkey
を使用しているのは以下の部分のみだ。
# ghq with peco
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^T' peco-src
# history with peco
function peco-history-selection() {
BUFFER=`history -n 1 | tail -r | awk '!a[$0]++' | peco`
CURSOR=$#BUFFER
zle reset-prompt
}
zle -N peco-history-selection
bindkey '^R' peco-history-selection
peco-src
はghqで管理しているリポジトリをpecoで検索してcd
する。peco-history-selection
はコマンド履歴をpecoで検索して実行する。
peco-history-selection
に関してはWarpがデフォルトで同等の機能を提供しているのでそっちに乗り換えれば問題ない。
しかし、peco-src
のような機能はWarpにない。bindkey
を使用せずに同じようなことはできるか。
解決方法
ごめんなさい。Workaroundってほどのものでもない。結構ダサい。
# ghq with peco (no bindkey)
function g () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
cd ${selected_dir}
fi
}
g
関数を作成した。実行するときはg
コマンドを打つ。
実行する時に打つキーはgとEnterの2つだけなので「実質キーバインド」みたいな感じ。
意外と不便ではない。まあいいんじゃないかな。
これでiTermの時とほぼ同じように使えるようになった。 そもそもの話、ターミナルソフト使わずにVSCodeで全部頑張るのが良いかもしれないがそれはそのうち。 おそらくVSCodeにはリポジトリを検索できる拡張機能あるんじゃなかろうか。 この辺とか。