エディタ論争について VSCode vs NeoVim

目次

VSCode vs NeoVim

エディタ論争について書いていこうかなと思います。

NeoVim(Vim)のメリット

快楽

やはりなんといってもTerminal内でマウスを必要としない開発体験は、何者にも変えられない快楽を生み出すように感じます。
Terminal内をかけめぐり、自分のみが知るinit.vim vimrcを把握しておけば、最高の開発体験を得られますよね。
黒い画面でスコスコ好きなプログラムを書くのは、なんだかマトリックスみたい!という気分にもなります。

機能面

標準の何も入っていないneovimだと基本的には移動し、特定のキーバインドで編集がしやすくなるエディタにすぎませんが(標準のファイラー入っているとかは置いておいて)、プラグインを取り込めばVSCodeに劣らない潜在力を引き出すことができます。
個人的な神プラグインは以下、
– Coc.nvim
– fzf-preview.vim
– vim-fugitive
– nvim-treesitter
– fern.vim

Coc.nvimを使えばVScodeとほぼ同様の定義ジャンプや補完、コンパイルエラー検索などもういたれりつくせりです。
またfzf-previewを使用すれば開発で必要なほぼすべての動作を曖昧検索してくれるため、非常にエクスタシーな開発体験を得られます。preview画面もcatではなくbatを使用するとカラフルになり使いやすいです。
VSCodeのファイル検索ではPreview機能が標準で入ってない(私が知らないだけかも)ため、そこはNeoVimに優れたプラグイン開発者がいるのかなと想います。

VSCodeのメリット

安定性

やはり後ろ盾にMicorosoftがいるだけあり、何もいじらなくても標準で全然問題ない。
むしろ標準でも全然良いからこそ、

チームでの開発環境統一の容易さ

やはり仕事で開発環境を統一する新規さん入社を教育する際は、いれてほしい拡張機能を共有するだけで良いのは、
例えばVimで統一する際は、細かいですがshifttabや改行の文字幅など、少し話し合いが必要なイメージがあります。

GUIがなんだかんだ管理しやすい

拡張機能のインストールなどは基本的にGUIで実施しますよね。
Vimなどでプラグインをインストールする際はおそらくネットで調べて、良さそうなプラグインを探してブラウザ→Vimの設定ファイルなどでDeinやPlugでインストール。ただVSCodeなら拡張機能一覧である程度一覧を調べて良さそうならすぐにクリックぽちりなど、かなり楽な部分もあるかなと思います。
キーボードだけでカタカタするのも格好いいですが、GUIはそれはそれで脳死でもできるので楽かなと思います。
VSCodeもkeybinding.jsonなどをいじれば基本的にショートカットで移動できますしね。

NeoVimのデメリット

気づいたらプログラムを書かないで設定ファイルばかりを弄ってしまう

手段と目的が逆転してしまったケースですね。
設定ファイルいじりが楽しいのめちゃくちゃわかります、ただ自分が本来作りたいプログラムと沿ってしまうなら、優先度はどうなのかなとたまに思います。
またいろいろなことを考慮した結果設定ファイルが肥大化し、記憶力の悪い私は細かいプラグインのキーバインドを忘れたりしてしまいます。(キーバインドの競合など)
そうなると設定ファイルとの往復回数がさらに増えるので、結果的に効率ってどこにあるんだっけということにたまになってます。

ハードルが高い

Vimのハードルって基本的に3段階くらいあって
– キーバインドの慣れ
– プラグインの情報収集
– 設定ファイルの運用
これをすべて完璧にできる人ってかなり忍耐強くて少ないと思うんですよね。
そうなると真のめんどくさがりやはVSCodeとかのほうが楽だなと普通に思います。

VSCodeのデメリット

VSCode vimがなんかもっさりする

ちょっと書くのが疲れてきました。
もうこれに付きます。
NeoVimの拡張機能も試してみたのですが、なんかキーバインドがおかしく私には上手く使いこなせなかった。暇があれば再挑戦します。

ファイル単発で開きたい場合、VSCode開くのはちょっとめんどくさい

タイトル通りです。

まとめ

仕事・チーム開発→VSCode
個人・Vim玄人→NeoVim
カスタマイズ性→NeoVim
安定性→VSCode
快楽→NeoVim
拡張機能・プラグイン→互角

ということで、快楽はNeoVimが勝ちますが、基本的に選定すべきはVSCodeですね。

ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

数学科出身のSoftware Engineer
情報通信が好きなのでブログを活用して発信しています。

コメント

コメントする

目次
閉じる