VS Code にターミナルが統合された
現バージョン(1.4) まで気づいてませんでしたが、統合ターミナル (Integrated Terminal) 機能は 1.2 で追加されていました。
- バージョン 1.2 : 統合ターミナル機能追加
- バージョン 1.3 : 複数のターミナルを開くことができるようになった
- バージョン 1.4 : IME 対応、コンテキストメニュー実装
完成度上がってから知ったので、使ってみたインパクト大きかったです。
コードエディタにアドインされたターミナル機能
エディタに統合されたターミナルは新しい機能ではなく、Vim や Emacs にも実装されています。エディタを離れることなく OS のコマンドを実行したいというニーズは古くからあったということです*1。Mac 版 Emacs の場合だと OS X 標準のシェルである bash を実行する機能がありますが、結構不安定で快適に使えるレベルではありません。Emacs ネイティブの eshell を使うと Mac でも Windows でも安定した同じ環境が手に入りますが、Vim とか tig などのエスケープシーケンスの処理が必要なツールは使えなくて、パスが通っているコマンド実行にしか使えないので、結局 OS のシェルを起動することになります。ということで現在コードエディタに統合されたターミナル機能は今ひとつマイナー機能にとどまっていると言えます。
ATOM エディタにもターミナルを使える機能がありましたが、こちらも不安定でした*2。
ssh で VPS とかサーバーにログインしてコードを書くときなどは、一つの端末で作業したいので tmux などのターミナルマルチプレクサを使って Emacs と bash をペインで切り替えて作業することが多いですが、切り替えにはワンアクションあるので面倒ですね。
プラットフォーム毎のネイティブシェルサポート
VS Code の統合ターミナルはプラットフォームごとに標準のコマンドシェルを起動してくれて、環境変数などもちゃんと反映されているので、ネイティブのターミナルが文字通り統合された感じで使えます。設定を変更することなくデフォルトで使えるのはとても重要だと思います。
Mac だと Terminal とか iTerm2 とかを単独で起動するシーンが激減します。tig などのエスケープシーケンスを多用するツールも問題なく使えるんです。
Windows の場合は、コマンドプロンプトを起動するシーンが激減します。まあ、コマンドプロンプトですが・・。
PowerShell も普通に使えます。
PowerShell のコードを書く場合は ISE の方が捗るのであまり意味ない気もしますが。
ライフチェンジングな VS Code 統合ターミナル
VS Code の統合ターミナルは非常に素晴らしい。Microsoft はマルチプラットフォームに OS のネイティブコマンドシェル環境と高機能コードエディタを見事に統合してくれています。地味ながらこれまでにない画期的な機能と言えます。これまで OS X や Windows で Emacs に引きこもってましたが、これからは VS Code に引きこもることになりそう。
VS Code と統合ターミナル。エディタから離れずに npm パッケージインストールしたり 作成中のプログラム実行できたり git コマンド叩いたりできていいですね。 pic.twitter.com/KiwfnBZ8VL
— MH (@kondoumh) 2016年8月31日
VS Code がマルチプラットフォームの理想のエディタに近づいたので、普段のコード書きはこちら、Emacs は OrgMode とターミナルでのコード書きに用途を絞ろうかと。 https://t.co/mF7Hew5wS2
— MH (@kondoumh) 2016年9月1日
ということで、今後 Node.js のコード書くときなどは VS Code 一択になりそうです。さよなら Sublime Text。Emacs は捨てられないですが。
VS Code は Electron のトップキラーアプリに躍り出たという印象です。
Microsoft がこのエディタを提供しているというのが隔世の感があります。Visual Studio という 高機能 IDE のネーミングを冠したマルチプラットフォームなコードエディタ VS Code ですが、IDE に近づいていくのでしょうか?
しかし、VS Code から入った人が、初めて Visual Studio を使う時どういう印象を受けるのか。
— MH (@kondoumh) 2016年9月1日
マーケティング的な展開も気になるところです。Visual Studio のブランドを外して Microsoft Code などにリネームされる可能性もあるのではないかと考えました。
追記:続編も書きました。