読者です 読者をやめる 読者になる 読者になる

kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

マルチプラットフォームのコードエディタ Visual Studio Code に統合ターミナルがやってきた

Tools Programming

VS Code にターミナルが統合された

現バージョン(1.4) まで気づいてませんでしたが、統合ターミナル (Integrated Terminal) 機能は 1.2 で追加されていました。

  • バージョン 1.2 : 統合ターミナル機能追加
  • バージョン 1.3 : 複数のターミナルを開くことができるようになった
  • バージョン 1.4 : IME 対応、コンテキストメニュー実装

code.visualstudio.com

完成度上がってから知ったので、使ってみたインパクト大きかったです。

コードエディタにアドインされたターミナル機能

エディタに統合されたターミナルは新しい機能ではなく、Vim や Emacs にも実装されています。エディタを離れることなく OS のコマンドを実行したいというニーズは古くからあったということです*1。Mac 版 Emacs の場合だと OS X 標準のシェルである bash を実行する機能がありますが、結構不安定で快適に使えるレベルではありません。Emacs ネイティブの eshell を使うと Mac でも Windows でも安定した同じ環境が手に入りますが、Vim とか tig などのエスケープシーケンスの処理が必要なツールは使えなくて、パスが通っているコマンド実行にしか使えないので、結局 OS のシェルを起動することになります。ということで現在コードエディタに統合されたターミナル機能は今ひとつマイナー機能にとどまっていると言えます。

ATOM エディタにもターミナルを使える機能がありましたが、こちらも不安定でした*2

ssh で VPS とかサーバーにログインしてコードを書くときなどは、一つの端末で作業したいので tmux などのターミナルマルチプレクサを使って Emacs と bash をペインで切り替えて作業することが多いですが、切り替えにはワンアクションあるので面倒ですね。

blog.kondoumh.com

プラットフォーム毎のネイティブシェルサポート

VS Code の統合ターミナルはプラットフォームごとに標準のコマンドシェルを起動してくれて、環境変数などもちゃんと反映されているので、ネイティブのターミナルが文字通り統合された感じで使えます。設定を変更することなくデフォルトで使えるのはとても重要だと思います。

Mac だと Terminal とか iTerm2 とかを単独で起動するシーンが激減します。tig などのエスケープシーケンスを多用するツールも問題なく使えるんです。

f:id:kondoumh:20160903222613p:plain

Windows の場合は、コマンドプロンプトを起動するシーンが激減します。まあ、コマンドプロンプトですが・・。

f:id:kondoumh:20160903221055p:plain

PowerShell も普通に使えます。

f:id:kondoumh:20160903221501p:plain

PowerShell のコードを書く場合は ISE の方が捗るのであまり意味ない気もしますが。

blog.kondoumh.com

ライフチェンジングな VS Code 統合ターミナル

VS Code の統合ターミナルは非常に素晴らしい。Microsoft はマルチプラットフォームに OS のネイティブコマンドシェル環境と高機能コードエディタを見事に統合してくれています。地味ながらこれまでにない画期的な機能と言えます。これまで OS X や Windows で Emacs に引きこもってましたが、これからは VS Code に引きこもることになりそう。

ということで、今後 Node.js のコード書くときなどは VS Code 一択になりそうです。さよなら Sublime Text。Emacs は捨てられないですが。

blog.kondoumh.com

VS Code は Electron のトップキラーアプリに躍り出たという印象です。

electron.atom.io

Microsoft がこのエディタを提供しているというのが隔世の感があります。Visual Studio という 高機能 IDE のネーミングを冠したマルチプラットフォームなコードエディタ VS Code ですが、IDE に近づいていくのでしょうか?

マーケティング的な展開も気になるところです。Visual Studio のブランドを外して Microsoft Code などにリネームされる可能性もあるのではないかと考えました。

追記:続編も書きました。

blog.kondoumh.com

f:id:kondoumh:20160903121217p:plain

*1:Emacs はどの OS でもコード書きと実行、そしてメールの読み書きもできる OS 内 OS 的な統合環境として愛用されてきました

*2:ATOM 自体使わなくなってしまったので最新版を検証したわけではありません