VSCode, Sublime Text 3, NeoVim, Emacs + Evil (のプラグイン) をラフに比較します。
注意: 素人が書いています。また、リモートなど、考慮に入っていないものも多いと思います。
エディタに期待するもの
僕は以下を重視します。
Rust プログラミングの手厚いサポート
シンボルのリネーム (にバグが無いこと) や、外部クレートのアイテムへのジャンプ (が可能なこと) を重視します。
→ VSCode
文書編集の UI
バッファ単位でテキストの中央寄せをしたいです。また、 タブバーやファイルの ツリービューを使います。そのため、 バッファのグルーピングや マルチルートディレクトリのサポートが欲しいです。
→ Emacs (Centaur Tabs, Olivetti)
これは少数派かもしれません
その他 UI について
プレビューしながらのファイル検索や、 interactive grep が好きです。つまり fzf-previewが好きです。リンク先には GIF があります。
→ NeoVim (fzf-preview)
また、 GUI ではなくてターミナルで動かしたいです。
比較
考慮されていない部分も多いと思います。ご容赦ください。
VSCode
Rust の (クライアント側?) サポートが完全な唯一のエディタです。他のプラグインも非常に良く動作します。
- Good:
安定性、組み込みターミナル、コマンドパレット - Bad:
ファイル検索にプレビューがありません。 interactive grep ができないと思います。重さ (文字入力の遅さなど) やタブの分厚さも気になります。 - その他:
自分で拡張を作るのは大変らしいです。
Sublime Text 3
デフォルトの動作が非常に良いエディタです。 VSCode よりも明らかに 動きが速く、さらにファイル検索にプレビューが付いています。
NeoVintageousで .vimrc
風ファイルを読めるようになります。ただしバグがあり、 json の設定を開くと 1 分ほど硬直するようになります。謎……
- Good:
デフォルトの挙動 - Bad:
画面分割 (Origami) が合いませんでした。また、 LSP の詳しい設定法が分かりません。 デフォルトは良いのにディテールが合わないという不思議な結果になりました。 - その他:
拡張を簡単に作れるそうです。
NeoVim
設定が簡単で 見た目が良いエディタです。
タブなどは薄いミニマムで、配色はしっかりしており、アイコン表示もできます。
- Good:
安定性と極まった UI - Bad:
動きが遅い (文字入力や一部 UI) です。改善可能? また、サイドバー (NERDTree) にはマルチルートディレクトリがありません。 - その他:
VimScript です。今後は Lua かも……
Emacs
一部パッケージが非常に発達したエディタです。ただし マンパワーが足りないのか、色々と上手く動作しないのが普通です。
ターミナルでは見た目が悪いです。配色は見づらく、どのパッケージもアイコン表示をサポートしません。
- Good:
起動後の動作が軽いです。また、 一部パッケージのディテールが非常に良いです。特に Centaur Tabs によるバッファのグルーピングは、他エディタには無いかもしれません。 - Bad:
起動が遅いです。ターミナル上では見た目が悪いです。看板パッケージにも明らかな不具合があって、しかも issue すら立っていないことがよくあります。 - その他:
ELisp を使えます。
終わりに
現在は、以下のようにエディタを使い分けるようになりました:
用途 | 使用エディタ |
---|---|
プログラミング | VSCode |
文書の編集 | Emacs + Evil |
Git | NeoVim |
人に勧めるなら、 NeoVim (実践Vim) → VSCode かなと思いました。
注意
上記の僕の印象は、エディタの実態からずれているかもしれません。
『君は全然分かっていないぞ』という場合はごめんなさい!