数年前にVimからAtomやVSCodeに乗り換えたものの、1年ちょっとでNeoVimに戻ってきた人です。結構頑張ったんですけどね。
個人的に、今からプログラミングを始める人はVSCodeで良いと思います。
GUIエディタでは最速級、そこそこ気も利いています。数百MBのファイルなど動作が遅くなるときは拡張機能を無効にするか聞いてきますし、初回起動時にお勧めされる拡張機能を入れればそれなりに良い環境がすぐに出来上がります。Dockerを管理するGUIも付いていてあれこれフル装備です。初心者にこれ以上の環境はないでしょう。SweetなSuite。
(今の私の環境 Warp + NeoVim。RustのLSPがエラーを検出し、該当行と右下に通知しています。上部のタブで複数ファイルが切り替え可能です。実はターミナルなのに範囲選択やタブ切替などマウスも使えます。使わないけど)
…でも、VSCodeでも遅いんです。拡張性も全然足りません。
まずVimではGUIエディタが数分無反応になるかクラッシュするような 数GBの巨大ファイルも、ちょっと時間かかるなーくらいであっさり開いて編集できます。ログファイルのように追記だけならターミナルでもできますが、巨大なDBダンプやログデータを直接編集したり移行したりするような用途ではちゃんと検索や編集ができないと困りますしね。
さらに ターミナルに慣れた人たちはあらゆるアプリをカスタマイズし、極限までキータッチを減らしている 人が多いです。
例えば私の場合「スペース→文字キー1つか2つ」のキーコンボで大概のことができます。ファイラの起動、Grepや検索、画面内の好きな単語にジャンプする、LSPの警告一覧を確認するなど、色々な機能がこのキーコンボに詰め込まれています。
よく遠いと言われるEscキーも、私はjとkの同時押しに変更していますのでむしろ近いです。(↓と↑の同時押しに相当します) jjやkkなど似た設定も含めVim界隈ではよく見かける設定ですよ。
(Escキーをjとkの同時押しにする設定)
vim.keymap.set("i", "jk", "<Esc>")
vim.keymap.set("i", "kj", "<Esc>")
またターミナル系エディタのユーザーは、開発環境構築のためのスクリプトをあらかじめ組んでいる人が多い ので、新しいパソコンを買ってきてもスクリプトを流せば、コーヒーを飲みながら時々触る程度で1時間かそこらで開発環境が完成します。GUIエディタではそこまで自動化できません。
最初はプログラミングそのものの勉強が最優先だと思いますが、 道具にこだわる職人気質のプログラマー にはいつか挑戦してみてほしいですね。画像の通り Vim も NeoVim も、最新の Linter(コード整形) 、LSP(定義ジャンプやエラー検出など)、 Copilot(GPTによるコード補完) もごく当たり前に使えます。できることはGUIエディタと同じです。ちなみに私が使ってるJavaScript系のLSPは内部的にVSCodeと全く同じものですよ。他にもたくさんあるので好きなものを選べます。
もしVimに挑戦したい場合、まずVSCodeにvim拡張機能を入れて指を慣らしてから乗り換えると良いと思います。今は多くの人がVSCodeでプログラミングを始めると思いますが、これからもその中の一部の人たちは更なる効率化を求め、いつかVimやEmacsの扉を叩くでしょう。もしあなたにその時が来たら歓迎しますよ。
現在 Macでは Ghostty + NeoVim、Windowsでは Alacritty + NeoVim の構成で開発してます。
Lua製の拡張機能が充実してきたので本格的にNeoVim向けに環境刷新しまして。超高速でおすすめですよ。
