Posted at

コマンドラインからVS Codeでファイルやフォルダを開く

メモついでに。

VS Codeを立ち上げてマウスでポチポチしたりFinderからファイルをD&Dしたりするのでもいいのだけど、なんとなくロス感があるのでターミナルからVS Codeでファイル・フォルダを開きたかった。

なお当エントリ執筆時点のVS Codeバージョンは以下です。


バージョン1.28.2 (1.28.2)



前提

codeコマンドが使えること。

$ code -h

でヘルプ出ればOKなはず。

Mac使っててcodeコマンドなんてないと怒られるひとは、VS Code上でcommand+shift+Pしてコマンドパレットにshell commandって打つと『Shell Command: Install 'code' command in PATH command.』っていうのがあるはずなのでこれをやると使えるようになる(はず)。


VS Codeをただ起動する

$ code

だけ。


VS Codeの"新規ウィンドウ"で開く

$ code -n (<file> | <dir>)


# 現在いるディレクトリを開く場合

$ code .
# もしくは
$ code -n .

# ファイルならこう
$ code -n README.md

-n--new-windowの略

なお


  • フォルダの場合は-nがなくても新規ウィンドウで開く

  • ファイルの場合は-nがないと既存ウィンドウで開く

という一貫性のない挙動をするので、自分は常にフォルダのときも-nをつけるようにしている…….


現在開いているウィンドウで開く

$ code -r (<file> | <dir>)

-r-reuse-windowの略らしい。-nのときと同じつかいかた。

-rはすこし気をつける必要があって、-rフォルダを開くと既存の開いている内容はクリアされてしまう。

編集中の保存していないファイルがあると「保存しますか?」のダイアログが出るので、勝手に閉じられて編集内容が消されてしまうということは起こらないので安心してOK。

たとえばFooフォルダを開いているウィンドウでBarフォルダも開きたいというような気持ちで-rすると、開いていたFooフォルダは閉じられてBarフォルダが心機一転して開かれる。

つまり


  • ファイルの場合は-rしても開いているウィンドウ内容はクリアされない



    • -rつけないときと同じ挙動ともいえる



      • code README.mdのときと同じ





  • フォルダの場合は-rすると開いているウィンドウ内容はクリアされる

こういう一貫性のない挙動をする……。

なおFooフォルダを開いている状態はそのままにBarフォルダも開きたいという欲求があるのなら下記-aのほうを使う。


現在開いているウィンドウにフォルダを足す

$ code -a <dir>

-a--addの略。

-rと違って現在のウィンドウにフォルダを足すので既存の開いていたものが閉じられることはない。「いま開いてるウィンドウでこのフォルダも追加管理したいな〜」みたいなときに便利。



codeコマンドは他にもいろいろあります

codeコマンドは他にもいろいろできることがあります。

code --helpしたらコマンド一覧見れるので気になる人は見てみるといいと思います。

なお公式ドキュメントにたいていのことは載っています(一貫性のない挙動のことについては載っていない)。


https://vscode-doc-jp.github.io/docs/userguide/command-line.html