yigarashiのブログ

学んだことや考えていることを書きます

VSCodeで複数リポジトリを扱うなら結局Open Recentコマンドが最強という話

大学時代から長らくEmacsで暮らしていたのですが、最近ついにVSCodeに完全移行しました。各種設定やプラグインのエコシステムが使いやすかったり、コマンドパレットの感じがEmacsに似ていたりしていい感じです。

そんなVSCode、基本的には1フォルダ1ウィンドウの世界観なので、大量のリポジトリを相手にするときに困りがちです。何も考えずにフォルダを開いていくとウィンドウが散らかって生産性がどんどん下がります。典型的な解決策としてWorkspace機能がよく紹介されますが、以下の理由から個人的にはあまりフィットしませんでした。

  • 仕事で扱うリポジトリは巨大なものが多く、それをひとつのウィンドウにいくつも押し込めてしまうと複雑すぎて手に負えない
    • ひとつのウィンドウで複数リポジトリのファイルを開けてしまうというのも厄介で今度はタブの管理が大変になる
  • Workspaceの設定は基本的に手動管理なのでリポジトリの数に対してスケールしづらい

解決策 - Open Recentコマンド

こうした問題意識から解決策を色々探していたのですが、最終的にVSCodeにデフォルトで入っているOpen Recentコマンドが一番良いという結論に至りました。デフォルトのショートカットキーはおそらくCtrl-Rで、コマンドパレットからもFile: Open Recent...という名前で参照できます。実行すると以下のように最近開いたフォルダをインクリメンタルに検索できます。

VSCodeのOpen Recentの例

【追記】デフォルトでOpen Recentを使うと現在のウィンドウが置き換えられてしまって微妙に望みの挙動にならないので、設定からWindow: Open Folders In New Windowをonにして使っています。

あとはお好きな移動キーで開きたいフォルダのところまで移動して選択するだけです。既にウィンドウが開かれていれば一瞬で移動し、まだ開かれていなければその場でウィンドウが開きます。個人で使う場合は以下のように運用しています。

  • Macなら)VSCodeのウィンドウ用のデスクトップをつくる
  • 完全に新しいリポジトリを参照する時はリポジトリ直下でcode .としてウィンドウを開く
  • 開いたウィンドウは全て専用デスクトップ領域に放り込む
  • 一度でも開いたことのあるリポジトリはOpen Recentで移動する

このやり方は以下の点で気に入っています。

  • 1ウィンドウ1フォルダなので作業のコンテキストを区切りやすい
  • リポジトリの名前さえ覚えていれば一瞬でウィンドウを切り替えられる
  • ウィンドウがあるかないかを気にせずにリポジトリを移動することができる
  • 一度開くだけで検索対象になる上、インクリメンタルサーチなので、リポジトリの数に対してスケールしやすい
  • 各ウィンドウのターミナルが必ずリポジトリ直下をカレントディレクトリとして開く

ゴールデンウィークで開発環境整備に取り組む方も多いかと思われます。ぜひご参考ください。