はじめに
ども、とんとんぼです!iOSを中心にモバイル開発やってます。
最近、vim-jp というコミュニティに入りました。
そこで自己紹介を含めて自分がどのようにvimと出会い、vimの沼にハマったかを紹介します。
Vim との出会い
大学4年生の時、私はVimと出会いました。当時、理系の学生として論文やレポートを作成するために、主に $\TeX$ という文章作成ツールを使っていました。
$\TeX$ は、Donald E. Knuthによって開発され、複雑な数式を美しく整形することができる文章作成ツールです。しかし、$\TeX$ の環境構築が非常に難しいことから、自分のローカル環境ではなく、外部ツールに依存することにしました。そこで出会ったのがOverleafというWebアプリケーションで、これを使えば特別な設定なしで論文を執筆できます。
同じころ、私はマウス操作を減らす方法を探していました。というのも、マウスの使用があまり好きではなく、キーボードとマウスを頻繁に切り替えるのが面倒だと感じていたからです。調べた結果、Vimがその解決策になりそうだとわかり、試してみることにしました。
偶然にも Overleaf にはキーバインドの設定があります。この設定には、
- Vim
- Emacs
の設定があります。
わい「じゃ、Overleafとvimで執筆すればわいが直面している問題はほぼ解決できるな」
と思ったので、私はOverleaf + vim で論文の執筆を行うことになりました。
一冊の本との出会い
「じゃ、実際にVimを学んでみよう!」と思い立ち、WebでVimに関する情報を調べ始めました。特に参考にしていたのは、「はじめてのVim ~ Vimはいいぞ!ゴリラと学ぶVim講座」というサイトでした。
また、書籍も購入して読みました。その中で特にVimに夢中になるきっかけとなったのが、「実践Vim 思考のスピードで編集しよう!」という本です。この本のサブタイトル「思考のスピードで編集しよう!」がとても魅力的に感じ、手に取ったのを覚えています。
本書の「TIP7:埃を払って一息つこう」というセクションでは、Vimを初めて使う人に向けて、VimのNormal ModeとDefault Modeの違いを画家の例えで解説しています。この説明が非常に印象的で、画家がキャンバスに絵を描くようにプログラマがコードを書くという比喩が、非常にかっこよく感じられました。
これが、今でも私がVimに魅了され続けている理由です。
エンジニアになって
大学を卒業してモバイルアプリエンジニアとして働き始めてからも、Vimを使い続けています。しかし、モバイルアプリ開発の特性上、Vimをフル活用して開発するのは難しいのが現実です。
モバイルアプリの開発では、以下のように使用するエディタ(IDE)がほぼ決まっています:
- iOS: Xcode
- Android: Android Studio
これらのIDEには、それぞれ特有の機能があり、Vimだけでの開発は困難です。たとえば、iOS開発では一部の機能がIDEにしか実装されていないため、Vimを使う機会は限られます。
それでも、Xcodeには「Vim mode」、Android Studioには「IdeaVim」というプラグインが用意されているため、これらを使ってVimの操作感を維持しながら開発を行っています。
Vim mode について
Xcode に標準搭載されている機能です。
導入方法は簡単でメニューバーから、
Editor > Vim Mode
にチェックを入れると、Vimのキー操作でエディタを編集することができます。
IdeaVim について
IdeaVimはJetBrains系のIDE向けに提供されているプラグインです。
こちらも導入方法は簡単で、AndroidStudioの場合、
Plugins > Marketplace
から、"IdeaVim"と入力すると出てきます。これを Install するだけで、簡単に Vim 環境を作成することができます。
最後に
Xcode の Vim mode も、AndroidStudio の IdeaVim も本家のVim, NeoVim に比べたら出来ないことはたくさんあるでしょう。
しかし、Vimのキーバインドというのは作業効率を格段にあげてくれるものだと思っています。
最近ですと、モバイルアプリ開発ではFlutterがホットになりつつあります。FlutterはNeovimのプラグインが存在するので、そろそろ本家Vimでモバイルアプリの開発ができる時代がやってくるのかなぁ〜