7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jshellのデフォルトエディタにVS Codeを指定する

Posted at

環境

OS

Windows 10

Java

11

jshell で外部エディタを使う

jshell には、外部エディタを使ってコードスニペットを編集できる機能が用意されている。

jshell> /edit

jshell.jpg

デフォルトでは、こんな感じの超シンプルなエディタが立ち上がる。1

jshell.jpg

ここでコードを編集して Exit でエディタを閉じると、エディタにかかれていたコードがスニペットとして登録される。

スニペットが複数存在する場合は、 /edit <スニペットのID> と指定すれば、指定したスニペットだけが編集できる。
(スニペットIDを指定してない場合は、全てのスニペットがエディタに表示される)

外部エディタに VS Code を指定する

/edit で使用される外部エディタは、 /set editor <エディタを起動するためのコマンド> という形で指定できる。

jshell> /set editor "F:\\ProgramFiles\\Microsoft VS Code\\Code.exe" -w
|  エディタは次に設定されています: F:\ProgramFiles\Microsoft VS Code\Code.exe -w

VS Code を指定する場合は、 VS Code の exe へのパスと -w オプションを設定する。
-w は、ファイルを閉じるまで起動元に制御を戻さないようにするオプションで、これを付けておかないとうまく動作しない2
バックスラッシュをエスケープするのも忘れずに。

これで /edit でエディタを開くと、 VS Code が開くようになる。
ファイルを閉じれば、制御が jshell に戻る。

jshell.jpg

デフォルトの外部エディタを指定する

jshell の、デフォルトの外部エディタは次のいずれかの環境変数で指定できる。

  1. JSHELLEDITOR
  2. VISUAL
  3. EDITOR

↑のほうが優先度が高く、先にエディタが設定されていた環境変数の情報が採用される。

つまり、環境変数 JSHELLEDITOR に先程の /set editor で指定したのと同じ情報を設定しておけば、毎回 /set editor する必要はなくなる。

環境変数に設定した値

jshell.jpg

jshell から VS Code が起動される様子

jshell.gif

参考

  1. Ctrl+Z や Ctrl+Y による編集のやり直しや再実行ができないくらいシンプル

  2. エディタ用に作成される一時ファイルが、jshellに制御が戻るタイミングで削除されてしまい、エディタ上でコードを編集できなくなる

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?