Warpでpecoを導入する方法
はじめに
開発作業において、ディレクトリの移動は頻繁に行う操作の一つです。この記事では、モダンなターミナルである Warp に peco を導入する方法を解説します。Warp は多くの優れた機能を持っていますが、従来のターミナルで使用できたbindkey
による設定ができないため、peco の導入に一工夫が必要です。
この記事では以下の内容を説明します。
- Warp で peco を導入する際の技術的な課題
- peco と ghq のインストールと設定手順
- 実際の動作確認方法
この設定により、以下のような効率的な操作が可能になります。
- ghq で管理しているリポジトリへのインタラクティブな移動
- 部分一致での絞り込み検索が可能
- キーボードで素早く選択できる
- 長いディレクトリパスの入力を省略可能
なぜ Warp では peco を導入できないのか
Warp は生産性を重視した現代的なターミナルエミュレータですが、.zshrc
の設定のbindkey
が使えないため peco を導入することができません。
これは Warp のリポジトリの issue としても上がっている問題です。
導入手順
前提条件
- Warp がインストールされていること
- Homebrew がインストールされていること
- Go がインストールされていること
ghq のインストール
Go のインストールから ghq のインストールまでの手順は以下の記事に従って下さい。
Warp 特有の peco のインストールと設定方法
まず、peco をインストールします。
brew install peco
.zshrc
に以下の設定を追加します。
ghq の管理化にあるリポジトリを一覧表示するキーバインドを設定する。(この記事では g + Enter とする)
function g (){
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
cd ${selected_dir}
fi
}
動作確認
設定完了後、以下の操作で動作を確認できます。
ターミナルを再起動するか、設定を再読み込み
source ~/.zshrc
ghq で clone する
$ ghq get https://github.com/foo/bar.git
# もしくは
$ ghq get git@github.com:foo/bar.git
g + Enter を押して ghq で管理しているリポジトリ一覧を表示
以下のように表示されていれば設定完了です。
QUERY> IgnoreCase [2 (1/1)]
/Users/hoge/src/github.com/foo/bar
/Users/hoge/src/github.com/baz/fuga
これらのショートカットキーで、従来の peco の機能が Warp 上でも利用可能になります。
すでにローカルにあるリポジトリを ghq 管理化に移行する
既存のリポジトリを ghq 管理下に移行する方法は、以下を参照するかghq
で再度 get してください。
まとめ
これらの設定により Warp の独自機能と peco を共存させることで、両方のメリットを活かせます。実行する時に打つキーは g と Enter の 2 つだけなので実質キーバインドを設定しているみたいに動作させることができます。
私自身、以前はホームディレクトリに直接 clone していた時期があり、プロジェクトが増えるにつれて管理が大変になっていました。peco と ghq を導入してからは、シンプルなコマンドだけで目的のディレクトリにスムーズに移動できるようになり、作業効率が格段に上がりました。特に、Warp ユーザーの方は少しの設定で環境が整えられ、効率的なリポジトリ管理が実現できます。まだホームディレクトリでリポジトリを直接管理している方は、この機会にぜひ整理してみてはいかがでしょうか。
参考記事
Discussion