【Atom、Sublime、Visual Studio Code、Vimの人気エディタを徹底比較】ベストなテキストエディタはこれだ!
プログラミングをする上で大事な判断になるのがテキストエディタです。どのエディタが使いやすいのかAtom, Sublime Text, Visual Studio Code, Vimという4つの人気エディタを比較しています。
TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。
本稿は、Codementorのブログ記事を了解を得て日本語翻訳し掲載した記事になります。また本記事は、10年以上リードエンジニアとして活躍するMatt Goldspink氏によって投稿されました。
プログラム記述用テキストエディタが溢れる今日この頃ですが、そこから一つを選ぶとなるとそれは難しい問題でしょう。
「開発者にとって最適なテキストエディタは何ですか?」という質問への回答はすぐには見つかりませんが、ここでは Atom, Sublime, Visual Studio Code, Vim という4つの人気のエディタについて比較してみます。
ここでの比較が、読者のニーズに合ったエディタを選択をする一助になれば良いなと思います。
お断り:ここでのいくつかの比較は主観的であり、ほとんどが私の個人的な好みに基づいています。
私はMac用のSublimeを使用してWeb(HTML、CSS、JavaScriptなど)の記述を行なっています。そのため、評価の視点は使い慣れているものに多少傾いてはいますが、できる限り客観的に評価を行いました。
目次
Atom
- Url: https://atom.io/
- 費用:フリー(MIT Licence)
- 開発者:GitHub
- プラットフォーム:OSX, Windows, Linux
- Atomは21世紀に向けて改良可能なテキストエディタと言われています。
- Atomは比較的新しいテキストエディタで、2014年に最初にリリースされて以来、多くの人気を集めています。
では、メインの機能から見てみましょう。
パッケージ
編集機能を追加できることはたいへん重要ですが、このエリアはAtomが得意としています。標準でインストールされるパッケージマネージャがこの機能を果たし、全てのパッケージはGithubで管理されています。
現在では、6,452個という多数のパッケージとテーマが利用できます。Atomにとってパッケージは基本的なものであり、プリインストールされたツリービューと設定ビューの機能でさえも単に最初から組み込まれたパッケージなのです。
編集とワークフロー
Atomでは全ての機能がスムーズに操作できます。では、最大の弱点はなんでしょうか。考えた末に出てきたのは、使い始めた際にどの追加パッケージをインストールすべきかを見つけるのに苦労する点です。
例えば、私はファイルの一部分を視覚的にスキップできるミニマップを愛用しているが、この機能をセットアップするためには「オートコンプリート+」を使用して、自動補間機能を設定する必要がありました。
私はよく複数のファイルを同時に開いて作業するので多くの場合、分割ペインの編集を設定する機能は必須ですが、これはAtomがうまくサポートしてくれている機能のひとつです。
Sublimeには無いAtomのもう1つの優れた機能は、ツリービューでのファイル/フォルダのドラッグ&ドロップのサポートです。私は周りのものをシフトできる機能がSublimeに無いことを知ってはいましたが、この機能はとても役に立つのです。
最後に、gitとの統合は素晴らしいのではありますが、結局は GitHub側で構築された結果なのです。
カスタマイズ
エディタを自分の開発フロー、およびスタイルに合うようにカスタマイズする機能は必須です。私は「保存する時に空白を取り除く」,「編集していないファイルを保存する」という設定をいつも使っていますが、これらを有効にしたり、無効にしたりすることは簡単に行うことができます。
Atomには優れたドキュメントが用意されており、そこにはスタイルを再設定する方法も書かれています。
私は構成設定に優れたAtomを好んで使っています。ファイルの種類ごとに設定の上書きができる機能は素晴らしい。例えばJS, CSS, HTML に別々の設定をすることはAtomでは容易なのです。
パフォーマンス
Atomを選ぶ際に問題になるとすれば、それは処理速度です。
ファイルを開いたり、タブを切り替える毎に生じるタイムラグは苦痛です。(本格的な開発の編集に使っている場合には特に気になります)Atomの最初のリリースではそこが問題点であり、最近ではかなり改善されてはいますが、まだまだ不十分です。
まとめ
カスタマイズを簡単に行いたいというユーザーにとってはAtomは優れたツールです。修正、追加、拡張性の自由度は大きな力を与えてくれます。ドキュメントも優れています。
私としてはやはりパフォーマンスの点が気になりますが、Atomはフリーのエディタとして光っているのは確かです。
Sublime Text
- Url:https://www.sublimetext.com/
- 試用するにはライセンス費70ドルが必要
- 開発者:Jon Skinner (前グーグル技術者)
- プラットフォーム:OSX, Windows, Linux
- Sublimeは2007年にリリースされ、ほぼ10年が経過しています。Stackoverflowの2016年の開発環境調査ではSublimeは第3位にランクされています。
- V3Betaは最新バージョンで、長い間Betaバージョンのままです。気にすることはありませんが、新版はたいへん安定しています。
パッケージ
最初にインストールするSublimeのパッケージはコントロールプラグインであるようです。Sublime 3ではこれらがデフォルトで追加されていることを期待しています。
Atomと同様にSublimeでもたくさんのパッケージとテーマが用意されていますが、私にとって必要なのは次の3つです。
- SideBarEnhancements:これを使わないとファイルのリネーム/移動/複製はできません。
- SublimeLinter:異なるプログラム言語にlintを追加するのに必要です。
- GitGutter:git 上の状態をラインナンバーの左に表示します。
Sublimeにおいても多くの(パッケージの)中から選択ことが出来ます。Sublimeのパッケージサポートは全体的によくできているのですが、最初に使い始める際に複雑な手続きがあるというのがちょっと残念な点です。
編集とワークフロー
重要なプロジェクトでは、Sublimeを使ってきました。ファイルの検索、ファイルの内容の検索は高速で簡単です。私は何百ものファイルからコードの断片を検索する作業をよく行いましたが、Sublimeの処理速度に不満を持つことはありませんでした。
Atomと同様に、Sublimeの本領はいくつかのキープラグインをインストールしてから発揮されます。正しい文法ハイライトを行うにはJSONフォーマッタ、LINTなどのインストールで時間が取られますが、一旦インストールしてしまえば再び触る必要はありません。
カスタマイズ
前述しましたが、SublimeはAtomと非常によく似ています。「フォーカスが無くなったら保存する」、「空白を取り除く」の設定も可能です。設定ファイルは簡単なJSONで書かれており、隠された全体のホストの設定があります。
パフォーマンス
SublimeがAtomより優れた点として、オープニング、クロージング、検索などがたいへんスムーズで速いことがあげられます。
まとめ
冒頭に述べたように、私は長年のSublimeユーザーなので、ここでの私の意見は少しだけSublime寄りではありますが、一般的にはSublimeは柔軟性があり高速なエディタであるとされています。
2016年の開発環境のトップ3に入るだけの理由はあるのです。
Visual Studio Code
- Url: https://code.visualstudio.com/
- 費用:フリー
- 開発者:Microsoft
- Platforms:OSX, Windows, Linux
- Visual Studio Code(VSCode)は比較的新しいテキストエディタです。昨年(2015年4月)にリリースされていますが、すでに大きな牽引力を持っています。Microsoftはパワフルで柔軟性のあるクロスプラットフォームエディタを作り出すという大きな業績を残しました。そのプラグインは開発者からの注目を集めています。
パッケージ
他のエディタと同様に、VSCodeもよくできたプラグイン(エクステンション)を持っています。エクステンションの管理は内蔵されており、何百ものエクステンションが利用可能になっています。これがAtomでは、いくつかのものだけがデフォルトでインストールされています。
自分のワークフローに最適なプラグインを選ぶのに多少の時間はかかります。私の好きな(そして私がVSCodeで興味深く思うのは) Chrome用のデバッガです。これを使ってVSCodeの中からブレークポイントをセットしてJSをデバッグできます。
同じことはNoode.jsでもできます。つまり、JSCodeからブレークポイントをセットして、ターミナルのノードプロセスが走っている状態でステップ実行させることができるのです。
編集とワークフロー
VSCodeはAtomと似たやり方でElectron、Node、HTML/CSSを使っていますが、タイムラグもなく極めて高速です。
私は、エディタを一週間使用してみて、かなり満足しました。Sublime,Atomに非常に親和性がありました。前述のデバッグ機能は拾い物でした。入力補間(最初は設定に苦労しましたが)が一日かそこらで利用できるようになりました。私はすでに引数を覚えていなくても、関数名を入力することに関しては達人になっていました。
カスタマイズ
前述の2つのエディタのようにVSCodeにもカスタマイズ機能はあります。wrapping, インデント、テーマなど必要な全ての機能が用意されています。
パフォーマンス
前述しましたが、VSCodeは(Atomと同様に)、Node.js, Electron, HTML, CSSを使って作られていますが(Atomとは違って) 明らかに高速です。起動、終了時のタイムラグも感じないし、検索も速いです。
察するところ、AtomとVSCodeの違いはUIエディタがMonaco(Visual Studio Onlineより)で作られていることだと思われます。これがパフォーマンスの違いの理由だと思いますが、とにかくパフォーマンスはSublimeと同等なのです。
まとめ
全体を見て私はVSCodeの検討結果にたいへん感激し、より継続して使うことも考えました。私は完全に乗り換えるためのステップを踏んでいる状態ですが、Sublimeと同様の設定をしてみたこの休日は楽しいものとなりました。
結局、私はSublimeを長く使い過ぎたようです。Gitとの統合、エディタ内デバッガーはすばらしい機能であり、私がSublimeを使って苦労していたことが、VSCodeを使うとあっと言う間にできてしまうのです。
Vim
- Url: http://www.vim.org/
- 費用:フリー
- 開発者:Bram Moolenaar
- プラットフォーム:OSX, Windows, Linux
-
私は開発者は成長するための通過点として、プロジェクトでVi、あるいはVimを使ってみるべきだと思う。ターミナルを通してリモートサーバ上のファイルを見たり編集できることは生産的で重要な機能です。
私は多くの開発者が、SFTP、curlを使って、ファイルを再アップロードするのを見てきました。
しかし、Vimについての厳しい意見は、Vimの愛好者を苛立たせ、さらには理屈の通った怒りを買うことを私は知っています。Vimを修得する事に時間を費やしている人にとって、Vimはたいへんに生産的な環境なのですから。
パッケージ
Vim では 14,00ものパッケージを使うことができます。たとえば、木探索、文法のハイライト、テーマ設定、Gitとの統合などがあります。Vimは信じられないくらいの柔軟性を持ち、パワフルなのです。
しかしながら、上で述べた他のエディタと同様に、インストールすべき最適なプラグインがどれかを知るには、インサイダーの知識とコメントが必要です。私は人気のあるプラグインはWebサイト(http://vimawesome.com/)を手がかりとして探しています。
編集とワークフロー
Vimに不慣れな人に最初に言っておきますが、Vimはコマンドラインのテキストエディタです。ダブルクリックしたり、移動のためにマウスを使うアプリとは違うのです。テキストを開く、編集する、閉じる、保存するという操作は全てショートカットを使って行います。
私が学生の頃、Viだけを使うように教えられました。
本当のVimのユーザーになるにはそれなりの覚悟が必要ですが、最後には「頭が良くなった」ような気分を味わうことができるでしょう。
正直言って、私がVim をあまり使わなくなったのは、ショートカットを充分に覚えていなかったからです。ひとつのファイルなら、検索したり、置き換えたりすることが簡単にできるのですが、これが複数のファイルとなると、途端に操作が分からなくなります。
カスタマイズ
Vimは驚くほどカスタマイズできます。Googleで「.vimrc」を検索すれば、Vimの設定例をたくさん見つけることができます。Vimはいろんなことが可能なのです。
パフォーマンス
Vimのパフォーマンス上の障害となるのは「ユーザー」、つまり「あなた」なのです。原理的で高速でありますが、パフォーマンスとしては、あなたがいかに速くコマンドを打てるかにかかっています。あなたがVimのパワーユーザであればVimもすごく速くなるのです。
まとめ
Vimは原理的なエディタです。速い動作速度を持ち、開発環境としては充分です。ただし、辛抱強くコマンドを覚える必要があります。
VIM Adventuresというオンラインゲームがありますが、これを使ってファイル内を移動する h, i, k, l のような基本的なコマンドを覚えることができます。
最終判断
以上のエディタは各々長所、短所を持っています。個人的には私は、開発者のキャリアの中で各々のエディタについて最低1週間は何が役に立ち、何が役に立たないかを見極めるべきだと思います。これら人気のある4つのエディタを包括することは、エディターを選びなおす良い切っ掛けになると思います。
[お知らせ]TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。これからプログラミングを始めようと思っている人はぜひご覧ください。