自分でVimを設定すると何が嬉しいのか

2024/06/24に公開

始めに

皆さんVimは設定していますか?
私はVimを設定するようになってから、ほぼ毎日dotfilesにコミットを継続できています。

そんな私が実践できている継続的なコミットについて、Vimを通して共有しようと思います。


最後に皆さんから
「設定させていただきありがとうございます」
って言えるように…なっていたら良いなぁって思っています。

Vimを設定するとは?

前提として「Vimを設定する」ということは、GitHub等にdotfilesやdotvimといった設定をまとめたリポジトリを作成して、個人開発している状態を言います。
ここではVimを一番の例としていますが、EmacsはもちろんVSCodeでも可能です。
つまり設定できれば何でもよいのですが、お恥かしながらVim/Neovimしか設定をまとめられていないため、ここではVimを例とさせてください。

それでは「設定させていただきありがとうございます」って何…?となるかもしれません。
…これについては後に語りましょう。

そもそもVimを無理に設定する必要無いじゃん!

このご指摘はごもっともです。
Vimを例としても無理に設定する必要はなく、Linuxディストリビューションと同じようにディストリビューションやIDEといった形で、設定を提供してくれています。
ことNeovimにおいては組込みでLSPやtreesitterに対応していることもあり、IDEとして遜色無いレベルにカスタムされた物が数多く存在しています。

それでも私が「自分でVimを設定すると何が嬉しいのか」ということのメリデメを挙げていきます。

デメリット

1. ある日突然、エディタが使用できなくなってしまう

更新によってプラグインやエディタの仕様に対応できず、エディタライフに支障が出てしまいます。
場合によっては、業務に支障が出てしまうため、この状態でメインエディタとして使用できません。

仮に問題を解決できても、ここに時間を使いすぎてしまう可能性があります。

2. 快適に使用できるようにするためのインプットが大変

IDEとして使用できるようにするまでに、LSPについては概要レベルで知る必要はありますし、そもそも設定項目の量が多く大変です。
またディストリビューションとして提供されている物は、
大量のプラグインを組み合わせてすべての機能が干渉しないように機能するようになっています。
この大量のプラグインの仕様をある程度把握して、他のプラグインと共存するようにすることは骨が折れます。

3. 設定する時間が足りない

常に付き纏う問題です。
プラグインやエディタの更新に追いつきつつ、自分の追い求める動作を実現するためには大量の時間が必要です。

メリット

1. すべてを自分が設定しているから、問題が発生しても自己解決できる

IDEとしてのディストリビューションを使用することのデメリットとして、問題が発生したときはディストロのメンテナーに頼らざるを得ません。
これは先のデメリットでも説明した「ある日突然、エディタが使用できなくなってしまう」と同じ現象です。

ですが、貴方が「自分でVimを設定していた」場合、導入したプラグインや設定のためのコードをある程度把握しているため、
問題が発生しても自己解決できます。

場合によっては、プラグイン自体の問題点を発見できて、普段愛用しているプラグインやエディタにコントリビュートするチャンスが生まれます。

2. コーディング/コードリーディングスキルが向上する

設定と言いつつ、プラグインやエディタの挙動を制御するために、vim scriptluaを書くことになります。
リモートプラグインを使用して、pythonやrubyでプラグインを設定する人もいるでしょう。

大量の時間を掛けて継続的に設定することで、必然的にコーディングスキルが向上すると個人的に思っています。
またメンテナンス性を考えると、コードのきれいさを考えることになるため、大変有意義な作業になるでしょう。

プラグインの使用方法が分からなかったり、ユースケースの分からない機能が存在したりします。
基本的にはプラグインの作者が欲しい機能をプラグインとして切り出しているパターンがほとんどのため、作者の設定を見に行くのがよいでしょう。
このときコードを探す勘所を掴めるようになり、いろいろな人のコードを見ることになるため、参考になる部分を吸収して自分のコーディングスキルに還元できるはずです。

https://github.com/Shougo/shougo-s-github

過去に私の記事ではリファレンス実装として、shougo-s-githubを定期的に紹介しているかと思いますが、dark poweredなプラグインを使用したい場合は、是非とも見に行くのをお勧めします。

https://github.com/yasunori0418/dotfiles

最近では私の設定も見てくれる人が増えているようで、大変おこがましいかもしれませんが、よろしければ私の設定も見てもらえると嬉しいです。

3. 設定するのが楽しい

業務では思うようにできないコーディングや、チャレンジしたいことが沢山あることかと思います。
ですが、貴方が設定を書き始めたら、それは貴方だけの物です。

思う存分チャレンジしましょう。

設定が上手く動いたときの感動と、それによって得られる作業効率の向上は格別な物になることでしょう。
ただ苦労するだけではなく、貴方が行なった作業すべては貴方に還元され、貴方自身のレベルアップを体感することでしょう。

気がつけば貴方は、次の言葉を言っているでしょう。

「設定させていただきありがとうございます」

少し?偏向的なメリットになってしまいましたが、上記のメリットを享受できれば、この言葉が自然と出てくることでしょう。
ですが、この言葉は設定できるプラグインだからこそ出てくるのです。

デフォルト設定が自動で適用され、気に入ったプラグインが思うように動かなくなってしまうものがあったりします。
ですが、デフォルト設定が無ければ、設定をすることでプラグインの挙動を制御することが可能になります。

そして自分でテキストエディタを制御できているという体験を重ねることで、設定することの喜びを得られるのです。

まとめ

いや、なんか宗教チックになってますけど、これ宗教じゃないんで。はい。

…え?
どう見ても宗教にしか見えないって?

https://x.com/takeokunn/status/1801635187274748262

違う!
そうじゃないんだ!

https://x.com/YKirin0418/status/1801635681435009528

もう…否定できねぇよ…。

GitHubで編集を提案

Discussion