Skip to content

macOS で VSCode を CLI から起動する

macOS で Visual Studio Code を利用する際、ランチャーから起動することも多いのですが、CLI からも起動出来ると便利です。 Visual Studio Code をインストールした直後は「CLI からの起動」は出来ないのですが、Visual Studio Code 標準機能で「CLI からの起動」を実現することが出来ます。 今回はその手順をメモしておきます。

macOS の場合は Visual Studio Code を起動し、「Command + Shift + P」を押してコマンドパレットを表示します。 私は英語環境で Visual Studio Code を利用していますが、コマンドパレットに install code と入力すると該当のコマンドが表示されますので、これを実行します。

file

インストールスクリプトを実行して良いのか、聞かれますので OK をクリックします。

file

/usr/local/bin 配下へ書き込みが行われる為、管理者権限が要求されます。 ユーザ名 / パスワードを入力するなりして、先へ進みます。

file

これでインストール完了です。

file

/usr/local/bin/code にバージョン 1.83.1 がインストールされました。

1
2
3
4
5
6
$ which code
/usr/local/bin/code
$ code --version
1.83.1
f1b07bd25dfad64b0167beb15359ae573aecd2cc
arm64

ファイルを指定せずに起動するには CLI から code とだけ、実行します。

1
code

指定したファイルを開く・または新規作成するにはファイル名を指定して実行します。

1
code test.txt

参考

ヘルプ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$ code --help
Visual Studio Code 1.83.1

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

To read from stdin, append '-' (e.g. 'ps aux | grep code | code -')

Options
  -d --diff <file> <file>                    Compare two files with each other.
  -m --merge <path1> <path2> <base> <result> Perform a three-way merge by providing paths for two modified versions of a
                                             file, the common origin of both modified versions and the output file to
                                             save merge results.
  -a --add <folder>                          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.
  -r --reuse-window                          Force to open a file or folder in an already opened window.
  -w --wait                                  Wait for the files to be closed before returning.
  --locale <locale>                          The locale to use (e.g. en-US or zh-TW).
  --user-data-dir <dir>                      Specifies the directory that user data is kept in. Can be used to open
                                             multiple distinct instances of Code.
  --profile <profileName>                    Opens the provided folder or workspace with the given profile and associates
                                             the profile with the workspace. If the profile does not exist, a new empty
                                             one is created. A folder or workspace must be provided for the profile to
                                             take effect.
  -h --help                                  Print usage.

Extensions Management
  --extensions-dir <dir>              Set the root path for extensions.
  --list-extensions                   List the installed extensions.
  --show-versions                     Show versions of installed extensions, when using --list-extensions.
  --category <category>               Filters installed extensions by provided category, when using --list-extensions.
  --install-extension <ext-id | path> Installs or updates an extension. The argument is either an extension id or a path
                                      to a VSIX. The identifier of an extension is '${publisher}.${name}'. Use '--force'
                                      argument to update to latest version. To install a specific version provide
                                      '@${version}'. For example: 'vscode.csharp@1.2.3'.
  --pre-release                       Installs the pre-release version of the extension, when using --install-extension
  --uninstall-extension <ext-id>      Uninstalls an extension.
  --enable-proposed-api <ext-id>      Enables proposed API features for extensions. Can receive one or more extension IDs
                                      to enable individually.

Troubleshooting
  -v --version                    Print version.
  --verbose                       Print verbose output (implies --wait).
  --log <level>                   Log level to use. Default is 'info'. Allowed values are 'critical', 'error', 'warn',
                                  'info', 'debug', 'trace', 'off'. You can also configure the log level of an extension
                                  by passing extension id and log level in the following format:
                                  '${publisher}.${name}:${logLevel}'. For example: 'vscode.csharp:trace'. Can receive one
                                  or more such entries.
  -s --status                     Print process usage and diagnostics information.
  --prof-startup                  Run CPU profiler during startup.
  --disable-extensions            Disable all installed extensions. This option is not persisted and is effective only
                                  when the command opens a new window.
  --disable-extension <ext-id>    Disable the provided extension. This option is not persisted and is effective only when
                                  the command opens a new window.
  --sync <on | off>               Turn sync on or off.
  --inspect-extensions <port>     Allow debugging and profiling of extensions. Check the developer tools for the
                                  connection URI.
  --inspect-brk-extensions <port> Allow debugging and profiling of extensions with the extension host being paused after
                                  start. Check the developer tools for the connection URI.
  --disable-gpu                   Disable GPU hardware acceleration.
  --disable-chromium-sandbox      Use this option only when there is requirement to launch the application as sudo user on
                                  Linux or when running as an elevated user in an applocker environment on Windows.
  --telemetry                     Shows all telemetry events which VS code collects.

Subcommands
  tunnel       Make the current machine accessible from vscode.dev or other machines through a secure tunnel
  serve-web    Make the current machine accessible from vscode.dev or other machines through a secure tunnel