yoshikenがプログラミングや日記、ポエムを書いていくページです


VSCodeの設定はディープリンクで共有してほしい

settings.json開いたり設定開いたりはめんどくさいね

VSCodeはディープリンクあるんすよ

メインでVSCode使っているんですが、時折新規で入れるときに設定なんだっけとぐぐると毎度cmd + , で設定開いて~みたいなのが書いてあるんですが、まぁ面倒だなと。

で、どこで見かけたが忘れたがVSCodeにディープリンクがあることを知った。

url踏めば設定まで一発でいけるのでQiitaとかZenとか書いてる人はぜひともディープリンクを使ってくれると非常に助かる。

ドキュメントを調べて解説をしようとしたんだが、ドキュメントが見当たらない。なんで?誰か教えてくれ。

仕方ないのでChatGPTさんに手伝ってもらいつつ解説する。

VSCodeのディープリンク仕様

VSCodeのディープリンクのschemeは vscode です。

つまり vscode://hogehoge となります。

pathは調べた限り基本は6個あり、

  1. 設定:settings
  2. コマンド:command
  3. 検索:search
  4. ファイル:file
  5. フォルダー:folder
  6. Diff:file+diff

です。拡張機能の独自のスキームやpath、webブラウザで使用可能なVS Code for the Webなどは省略します。

設定:settings

今回一番説明したかった。

vscode://settings/<設定項目> で設定項目までジャンプしてくれる

例えば以下はミニマップを表示するかどうかの設定まで一気にジャンプしてくれる

vscode://settings/editor.minimap.enabled

実は設定の歯車のところでURLとして設定をコピー というのがあるのでそこからURLを生成できたりする。

Pasted image 20241110010620

手動でも設定IDをコピーして上記の設定項目のところに貼り付ければよい。

コマンド:command

vscode://command/<コマンドID>VSCodeのコマンドが実行される。

注意点はterminalのコマンドではなくVSCodeのコマンドであること。Ctrl+Shift+pで入力可能なアレです。

例えば以下のURLはミニマップの有効/非有効を切り替えるコマンドのeditor.action.toggleMinimapを実行します

vscode://command/editor.action.toggleMinimap

コマンドIDというのはこの歯車マークをポチッと押すとでてくる @command: 以下です

Pasted image 20241110011400

Pasted image 20241110011426

検索:search

vscode://search?query=<検索語句> で動くらしいが、手元ではイマイチ動かず。

chatGPTによると「バージョンによっては動かないよ。まぁそもそも公式ドキュメントにないしね!」とのこと。(version 1.95.2のwin版では動かなかった)

実際できたら便利そうではある。

以下のような形らしいが動かない。

vscode://search?query=TODO

ファイル:file

正直使いどころが一番難しそうではある。

vscode://file/<ファイルの絶対パス>

絶対パスなのでうーん。

windowsの場合はこのようになる。

vscode://file/C:\Users\yoshiken\Downloads\hogehoge.txt

wsl上の開き方がいまいちわからず…

まぁ自分用のメモとかになら使えるかなぁと

フォルダー:folder

ワークスペースとして開くらしい

vscode://folder/<フォルダーの絶対パス>

ファイルと同じく絶対パスなので使いどころが難しい

Diff:file+diff

fileを使いこなせれば楽しそう。

vscode://file/<ファイル1の絶対パス>?diff=<ファイル2の絶対パス>

fileのpathにクエリストリングでdiffをつければ良い。てか他にクエリストリングあるのだろうか…

VSCode設定

最低限これを設定しないと不愉快になる的なところだけ。

実際にsettingsのURLこんな感じです的な。

tabのサイズは2

vscode://settings/editor.tabSize

ファイル保存時は末尾にから改行を

vscode://settings/files.insertFinalNewline

末尾の空白削除

vscode://settings/files.trimTrailingWhitespace

ミニマップ削除

vscode://settings/editor.minimap.enabled