このすみノート

Webエンジニアが技術や趣味を書くブログです。

私とXcodeとXVim2(XVim) 簡単な歴史からインストールまでを語ろう

私はVimmer(Vim使い)です。

プライベートでも会社でも、ずっとVimを使っています。このブログの記事も、ほぼ全てはVim、もしくはVisual Studio CodeのVimプラグインなどを使って書いています。

さて、そんなVimなのですが、世の中にはVim使いがたくさんおりまして、多くの IDEにはVimプラグインがあります。その中の一つに、XVimというXcode用のプラグインがあるのですが、私が愛用しているプラグインの一つです。

私のiOSアプリ開発には、常にXVimの存在がありました。今回は、そんな XVimを振り返っていきます。

f:id:konosumi:20180307233918p:plain

XVim2とXVim

XVim2は、XVimの後継として登場しました。しかし、そこには歴史があります。

github.com

XVimは、もともとXcodeのVimプラグインとして、デファクトスタンダードの位置付けにありました。私も古くから愛用しておりまして、Swiftが発表される前のObjective-Cの頃から、ずっとVimプラグインを使ってコードを書いてました。

Xcode8になってからは、自己署名で署名をし直さなくてはならないという手間は増えたものの、それでも動作し続け、存続を続けていました。

XVim/INSTALL_Xcode8.md at master · XVimProject/XVim · GitHub

そんなXVimに、一大事件が起こります。Xcode9の登場です。なんと、Xcode9の登場によって、XVimは動かなくなってしまいました

XVim界隈は大騒ぎになりまして、当時のissueの書き込み総数は、100件を突破しています。

github.com

そして、XVim騒動は困り果てた人たちによって、ついには千ドルの懸賞金がかけられる事態にまで発展します。

www.bountysource.com

XVimが使えない間の私はどうしたのか?

私は、XVimが使えない間は、AppCodeでiOSアプリの開発をしていました。

www.jetbrains.com

AppCodeは、Android StudioやPhpStormで有名な、歴史のあるJetBrains社製なので、当然Vimプラグインも存在します。

ただし、普段はXCodeで開発していた私にとって、慣れないAppCodeでの開発にはかなり戸惑っていました。

XVimが動かなくなった理由

正確な理由を把握してはいないのですが、私は、XCode9そのものが、Swiftによってスクラッチから書き直されたからだと推測しています。

FirefoxのQuantumアップデートでは、高速化の代償に多くの古いプラグインが使えなくなりました。それと同じ理由なのかなと?

japan.cnet.com

XVim2という朗報

さて、AppCodeで開発を続けていた私ですが、そんな私にXVim2という朗報が舞い降りてきます。

当初のXVim2は、うまく動かない状態だったのですが、修正を重ねることによってXVim2は普通に動くようになりました。XVim2の動作を確認した瞬間は、社内で思わず叫んでしまいました。

まさに、鷲巣がアカギの牌をロンした時のような、アドレナリンとエンドルフィンが全開な状態です。

XVim2のインストール

XVim2のインストールは、基本的にはREADME.mdに書いてある通りです。ただし、一つだけ注意点がありまして、自己署名による再署名が必要です。

XVim2/SIGNING_Xcode.md at master · XVimProject/XVim2 · GitHub

これをやった後は、普通にREADME.mdに書いてある通りに進めてください。再署名には時間がかかりますが、それ以外は3分もあれば完了します。

XVim2/README.md at master · XVimProject/XVim2 · GitHub

さいごに

当時、XVimの不具合を直そうとしてXVimのコードを開いたものの、さっぱり修正することができず挫折に至った記憶も、今では良い思い出です。

・・・というわけでして、XVim2は深い歴史のある、大変にありがたい存在なのです。

ちなみに、私はVimプラグインがないと、プログラミングのスピードが半分くらいにまでダウンします。そういう意味では、もはや単なるプラグインを通り越して、生命線のレベルになりつつありますね(苦笑)。