前書き
複数のリポジトリを用いて開発している人は、x-motemen/ghqでリポジトリを管理するケースが多いでしょう。本記事では、ターミナルからghqで管理しているリポジトリをVS Codeで開く方法を紹介します。
ツールインストール
x-motemen/ghq および peco/peco を利用します。以下はgoコマンドを利用したインストール方法です。他のインストール方法を利用する場合は、公式サイトを確認してください。
go install github.com/x-motemen/ghq@latest
go install github.com/peco/peco/cmd/peco@latest
~/.bashrc もしくは ~/.zshrc に関数を定義
bashを利用している場合は `/.bashrc` に、zshを利用している場合は/.bashrc`や~/.zshrcに以下の関数を定義してください。なお、fishシェルでは利用できません。定義後は、sourceコマンドなどで `~/.zshrcを再読込してください。
function vscode() {
if [ -n "$1" ]; then
repo=$(ghq list | grep "$1" | head -n 1)
else
repo=$(ghq list | peco)
fi
if [ -n "${repo}" ]; then
code "$(ghq root)/${repo}"
fi
}
上記のvscode関数は、ghq listでリポジトリ一覧を表示し、その一覧をパイプで受け取ったpecoコマンドがインタラクティブにリポジトリをフィルタリング(リポジトリの選択)できるようにします。
codeコマンドは、VS Codeを起動するコマンドであり、`$(ghq root)/${repo}`はユーザーが選択したリポジトリの絶対パスを表します。引数にリポジトリ名を指定した場合は、pecoコマンドを使用せずに直接リポジトリを VS Codeで開きます。
以下、vscode関数の実行例です。選択したリポジトリをVS Codeで開きます。

codeコマンドへのPATHが通っていない場合
macOSでは、VS Code(GUI)を利用しているのにも関わらず、codeコマンドのPATHが通っていない場合があります。公式手順の方法でPATHを通します。
- VS Codeを起動
- コマンドパレット(Cmd+Shift+P)を開く
- “shell command"と入力
- 選択肢"Shell Command: Install ‘code’ command in PATH” を実行
最後に
本来であれば記事にするような内容ではないです。が、私はdotfilesをGitHubで管理していないので、vscode関数をコピペできるように記事を書きました。
