はじめに
VSCode
のワークスペースが増えてお困りではありませんか?
バッチファイル(bat
)を介してVSCode
を起動することにより、起動時にワークスペースを選択できるbat
を紹介します。ワークスペースが増えてきたとき、いつでもワークスペースを切り替えられると便利です。
batの構成図
ワークスペースの保存ファイルを一箇所のフォルダにまとめておきます。一覧をもとに入力キーでフィルターしながら選択する機能がpecoにあります。さいごに、選んだワークスペースをVSCode
の起動コマンドに渡します。
batの現物
@echo off
setlocal
set WORKSPACE_FOLDER=C:\VSCodeWorkspaces
for /f "usebackq delims=" %%A in (`dir /b/o-d %WORKSPACE_FOLDER%\*.code-workspace ^| peco`) do set WORKSPACE_FILE=%%A
@echo WORKSPACE_FILE is "%WORKSPACE_FILE%"
if "%WORKSPACE_FILE%"=="" (
code
) else (
code "%WORKSPACE_FOLDER%\%WORKSPACE_FILE%"
)
batの解説
setlocal
は環境変数のローカライズを開始します。呼び出し元に環境変数が反映されてしまうのでsetlocal
を付けたほうがいいです。
WORKSPACE_FOLDER
は変数です。
変数WORKSPACE_FOLDER
にワークスペースの保存ファイルをまとめて置いてあるフォルダを指定してください。
for %%A in (...) do set
はコマンドの実行結果を変数に格納します。
dir
の引数は次の通りです。
-
/B
ファイル名のみを表示します。 -
/O
ファイル名を並べ替えて表示します。D
は日時を古いほうからにし、-
は順番を逆にします。
peco
の選択画面でエスケープやControl-C
を押下したとき"%WORKSPACE_FILE%"
が""
にな って引数なしで前回の状態で起動し、コマンドウィンドウを閉じたときは起動しません。
実はpeco
は複数選択が可能になっていまして、複数選択した場合は最も下の選択が起動します。--select-1
を使えば1つのみ選択にできるかと思いましたが、入力行数が1つのみのときに選択をスキップする機能でした。
code
はVSCode
を起動します。
拡張機能「Project Manager」と比較
こちらは評価の高い拡張機能ですが、起動時にワークスペースを選択できるbat
のほうが気に入っています。
Project Manager
にはワークスペースをタグ付けする機能がありますが、ワークスペースの名前をつけてpeco
で選ぶことで代替できます。
(参考)バックアップを取るbat
bat
で連想したのですが、ファイルのバックアップを取るbat
がこの記事のコメントで紹介されていて、最初のコメントのbat
(現在の日時を取得するほう)が便利で使っています。
右クリックの「送る」(SendTo
)で使っています。
(宣伝)ファイルのフォルダをワークスペースに1クリックで追加する拡張機能
VSCode
の拡張機能Add This Folder To Workspaceを以前に作りました1。
ファイルの右クリックからVSCode
で開いた後、ファイルのあるフォルダをワークスペースに追加するときに、ダイアログ画面をスキップさせたいと思って作りました。クリック1回で追加できます。
さいごに
起動時にワークスペースを選んでVSCode
を起動するバッチファイルを紹介しました。
bat
が誰かの役に立てれば幸いです。
-
更新してませんが
。 ↩