ちょっと話題の記事

コマンドの実行結果を VS Code で開く方法

2021.11.16

9月にリリースされた VS Code 1.60 のリリースノートを読んで、発見した機能です。(1.60 で実装された機能ではありません)

以下でもちらっと触れましたが便利なので別途記事を書いてみました。

code -

では皆さん、おもむろにシェルを開いて以下を入力し実行してみてください。

ls | code -

bash なら以下のフォーマットで VS Code が立ち上がり、

PowerShell の場合は以下のフォーマットで VS Code が立ち上がったかと思います。

この時シェルは以下の状態で止まっています。

Reading from stdin via: /tmp/vscode-stdin.F5FrMB.txt

VS Code を閉じると再びシェルが使えるようになります。

この code - については code -h でヘルプを見れば3行目に書かれています。(今まで見逃してた……)

code -h
Visual Studio Code 1.50.0

Usage: code.exe [options][paths...]

To read output from another program, append '-' (e.g. 'echo Hello World | code.exe -')

しかし現時点でドキュメントに記載はありませんでした。

言語の自動検出機能と組み合わせる

VS Code 1.60 のリリースノートでは言語の自動検出機能と組み合わせて使用されていました。

curl で取得した JSON を code - を使って VS Code で開くと、ダウンロードしたファイルが JSON と認識されシンタックスハイライトが適用され、その後にファイルのフォーマットを行っている一連の流れが見て取れます。

"Pipe into code" language detection (showing off detection of extension-less files): https://code.visualstudio.com/updates/v1_60#_automatic-language-detection

もちろん curl 以外にも、シェルスクリプトや自作スクリプトや各種 CLI コマンドの実行結果を VS Code で開くことができるので様々な場面に応用が効くでしょう。

まとめ

  • code - にリダイレクトすることで VS Code で開くことができる
  • VS Code の言語の自動検出機能といった各種機能・各種拡張機能と組み合わせることで編集までがスムーズに行える

最後に

今週末 11/20(土) にVS Code Meetup 主催の年次カンファレンス「VS Code Conference Japan 2021」が開催されます。

VS Code の拡張機能を作るハンズオンや各種セッション、LT 大会があります。興味のある方はぜひ参加してみてください。