🎻

Vim から VSCode に移行して分かったたった1つの真実

2023/08/24に公開2

導入経緯

当社は受注開発のIT企業である。2023年に長らくお世話になったVimの利用を辞め、VSCodeを使い始めた。

当社の実情

当社のエンジニアは2022年時点で全員がVimを使っていた。当時の案件はメインがRuby on Rails関連であったことも相まって、世に出回る便利なエディタ、IDEに関する情報感度が極めて低かった。

Rails案件ではVimを使うことに対して大きな問題はなかった。補完がある程度効けばバックエンドの実装に支障がないからである。エンジニアとしてそれでいいのかという葛藤は当然あったが、当社のエンジニアは日々の業務をこなすことに集中していた。


(設立当初から積み上げられた歴史としてのvimrc)

転機

ついにその時が来てしまった。
そう、Vue、Typescript案件が唐突に現れたのである。

当社のエンジニアは皆狼狽した。
Vimで培われた爆速タイピングは、eslintの自動修正やtsの型不一致検出では役に立たなかった。文字を挿入するごとにエラーを出されてしまいエンジニアは疲弊してしまったのである。

もちろんVimをそれに対応させることもできるであろうが、それは苦難が待ち受ける茨の道であるという予感がしていた。

VSCodeを導入した

この惨劇を救ってくれたのが、とあるVSCodeの使い方セミナーだった。

(当時のセミナーの風景(イメージ))

当社のエンジニアは全員それに参加することで無事TypescriptにHello Worldできたのである。

Vimmerから見たVSCodeの利点

前置きはこれくらいにして、当社ではある一つの真実に辿り着いた。
それは、
「VimからVSCodeに乗り換えるべき」
だということだ。当たり前すぎて言うまでもないかもしれない。エディタは日々進化しているし、それは薮から出てきたものではなく歴史が紡いできた財産である。VimができることのほとんどはVSCodeでもできるようになっている。

Vimを作ってくれてありがとうと伝えたい。
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1522338.html

ここからはVSCodeがどう良かったかみていくことにする。

Vimっぽく使える

拡張機能を使えばほとんどVimのようにカーソル位置を動かせる。
一時期、当社でもRubyMineを導入しVim拡張機能を導入したが様々な点でVimの機能を使いたくなるケースが出てきたため導入を断念した(現在は改善されているかもしれないが)。
しかしVSCodeは後述の全文検索やコマンドパレットで、Vim拡張機能だけでやるには微妙なところもカバーしており「Vimだったらできたのにな」という不満が出にくかったのである。

https://marketplace.visualstudio.com/items?itemName=vscodevim.vim

全文検索が神レベルで優秀

全文検索が神レベルで優秀である。
Vim時代はゴリゴリgrepを使っていたが、VSCodeの検索はインクリメンタルサーチであり、正規表現も当然のように使えるのでかなりありがたい。

AIによる補完が使える

Copilotを容易に使えるというのも魅力的な点である。

少しの課金で大幅にコーディングのストレスを緩和してくれる。
当社比でコーディングにかかる時間が30%短縮でき、導入時にはお祭り騒ぎになったほどである。

無料である

VSCodeは高機能でありながら、無料という驚異的なエディタである。(Copilotなどを除く)

GitLensが神

GitLensが神レベルの拡張機能である。当社では元々gitコマンドを駆使していたが、unstageしたりしてコミットを調整するのにGUIはかなり便利である。
https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens

拡張機能が神

いろいろな拡張機能があるため、やりたいなと思ったことが大体実現できる。
Vimも同じような感じではあったがやはりユーザー数が多いだけあって信頼性がある。

まとめ

みんなで Vim on VSCode を楽しもう!

Discussion

ピン留めされたアイテム
あいや - aiya000あいや - aiya000

Vimで快適にlinterやlspを使って、実務Vue.js&TypeScriptをこなすマン、参上でござる!

Vimでやっていることを、全てVS Codeに任せるのは難しい。