意外と知られていないVS Codeのcodeコマンドの使い方

VS Codeのcodeコマンドとは

ターミナルからVS Code(Visual Studio Code)のファイルを開いたり、比較したりすることができるコマンド。

ネット上にはvscodeコマンドと書かれている場合があるがcodeコマンドの間違い。

使い方はファイルを開く場合は…

code foo.txt

ファイルを比較する場合は…

code -d foo.txt bar.txt

のようにターミナルから実行する。

codeコマンドを実行しても「-bash: code: コマンドが見つかりません」と表示される場合はVS Codeで shift + command + p でコマンドパレットを表示させる。

「shell」で検索すると表示される「シェルコマンド: PATH内に'code'コマンドをインストールします」を選択してcodeコマンドを使用できるようする。
「シェルコマンド: PATH内に'code'コマンドをインストールします」を選択してcodeコマンドを使用できるようする

現在日本のIT業界内でフロントエンドのコーディングをしている人たちが一番使用している無償エディタは間違いなくVS Codeだが、残念ながらcodeコマンドを使っている人は半数もいない。

この記事ではVS Codeのcodeコマンドについてまとめた。

codeコマンドを使用する際はVS Codeの[表示] => [ターミナル]を選択してVS Codeの下部にターミナルを表示させておけばcodeコマンドが使用しやすいのでオススメ。

VS Codeを起動する

VS Codeを起動するにはcodeを実行する。ターミナルを開いていてすぐに入力可能な状態であれば、codeを実行して起動したほうが早い。

code

VS Codeのヘルプを表示

codeコマンドのオプションを忘れたときはcode -hを実行してヘルプを表示。

code -h

実行後はこのようなヘルプが表示される。

Options
  -d --diff             Compare two files with each other.
  -a --add                  Add folder(s) to the last active window.
  -g --goto <file:line[:character]> Open a file at the path on the specified line and
                                    character position.
  -n --new-window                   Force to open a new window.

VS Codeのバージョンを表示

code -vを実行するとVS Codeのバージョンが表示される。

$ code -v
1.41.1
31576a4de374ead31f87692a0d32f90d729745b1
x64

ファイルの比較

code -d foo.txt bar.txtを実行するとファイルの比較ができる。
code -d foo.txt bar.txtを実行するとファイルの比較ができる

code -d foo.txt bar.txt

Gitは追跡しているファイルでないと比較できないので、そのようなファイルの比較に重宝する。

画像ファイルの場合は2つの画像が左右に表示されるだけなのでImageMagickのcompareコマンドなどを使用したほうが良いだろう。

ファイルを開く

codeコマンドに開くファイルをパスで指定するだけ。

code aa/bb/foo.txt

下記のようにすればファイルを複数開くこともできる。

code foo.txt bar.txt

ファイルを新しいウィンドウで開く

ファイルを開くコマンドに-nを付ける。使用されることはほとんどないコマンド。

code -n aa/bb/foo.txt

ファイルを行数を指定して開く

ファイルを開くコマンドに-gを付けてファイル名のうしろに:行数を付ける。

GitHubの差分からファイルの特定の行数を見たいときに使うと非常に便利。

例えば123行目を見たい場合は以下のようになる。

code -g foo.txt:123

ただし、これだと使い勝手が悪いので以下のようにaliasを登録して実行できるようにしたほうが便利。

# .bashrc
alias c='code -g'
c foo.txt:123

-gを付けて行数を付けずに開いてもファイルは開ける。

c foo.txt

なぜ行数を指定して開くのに:行数を付けるかというと、git grepで行番号を表示する場合はこの形式で表示されることが原因。

Gitの設定でgrep.lineNumber trueに設定していないとgit grepでは表示されないので未設定の場合は設定しておくと良いだろう。

$ git config --global grep.lineNumber true
$ git grep "Hello"
foo.txt:123:Hello world!

ファイルを開く

codeコマンドに開くファイルをパスで指定するだけ。

code aa/bb/foo.txt

下記のようにすればファイルを複数開くこともできる。

code foo.txt bar.txt

ファイルが閉じられるのを待つ

-wオプションでファイルを開くと閉じるまで次のコマンドが実行できなくなる。

Gitを使用している場合は存在価値がないコマンド。

code -w foo.txt bar.txt

ロケールを指定して開く

--localeでロケールを指定して開く。多言語対応が必要な場合はよく使われるが、そうでなければ全く使わない。

code --locale en-US 1.txt

拡張機能の一覧を表示

code --list-extensionsで拡張機能の一覧を表示可能。

テキストファイルに保存する場合はこのようになる。

code --list-extensions > list-extensions.txt

拡張機能のインストールとアンインストール

インストールは--install-extension [id]

アンインストールは--uninstall-extension [id]

[id] 部分はVS Code MarketplaceのURLに付いているitemNameのvalueもしくは前述の--list-extensionsで表示されるものが該当する。

https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens

例えばGitLensの拡張機能をインストールまたはアンインストールしたい場合は以下のようになる。

# インストール
code --install-extension eamodio.gitlens

# アンインストール
code --uninstall-extension eamodio.gitlens

VS Codeのステータスを見る

code -sでVS CodeのGPU, CPU, メモリーなどの使用率や設定が見られる。

# 一部内容を省略
$ code -s
Version:          Code 1.41.1 
OS Version:       Darwin x64 19.2.0
CPUs:             Intel(R) Core(TM)
Memory (System):  16.00GB (0.11GB free)
Load (avg):       3, 3, 2
VM:               0%
Screen Reader:    no
Process Argv:
GPU Status:       2d_canvas:     enabled
                  flash_3d:      enabled
                  flash_stage3d: enabled

CPU %	Mem MB	 PID	  Process
    1	    66	 64550	code main
    0	    16	 64551	gpu-process
    1	    33	 64582	shared-process