Re: IdeaVimを入れて困っていること

この投稿はIntelliJ IDEA Advent Calendar 2013の14日目の投稿です。前日のエントリの回答編です(ネタに困って手抜きした訳ではありません。:-)
IdeaVimを入れて困っていること - Qiita

IdeaVIMについて

以前、こんなエントリを書いたので、まずはこちらを参照してください。→ jVi, Vrapper, IdeaVIMの比較 - marsのメモ

あと、はてダへのGoogle Docsの貼り付けはいつも失敗するので、直リン貼っておきます。→ vi-plugin


はじめに断っておきますが、vimユーザが各種IDEvimプラグインを使うために一番必要な事は「寛容さ」です。IdeaVIMに限らず、どんなvimプラグインも基本的にvimまがいものです(Eclimだけは別格)。どれも決してvimにはなれません。なので、なるべく広い心で接する必要があります。

前日のエントリの回答

極論を言えば、YouTrackにチケット登録してください。今のIdeaVIMのコミッタである [twitter:@vlasovskikh]さんは大変活動的な方なので、結構積極的に対応してもらえるはずです。


これだけだとあんまりなので、なんでそんな不具合が出てるのかについて解説します(たぶん、こんな理由であってると思います。


だいぶ前にこんなパッチを自作しました。
IdeaVIMの適用範囲をテキストエディタ下のEditorのみにしてみた - marsのメモ


IdeaVIMの仕組みの話になりますが、こいつはIntelliJのEditorコンポーネントに対して適用されます。で、このEditorコンポーネントっていうのが、テキストエディタだけではなく、いろんなところで使われています。たとえばコミットダイアログのコミットログ部分や検索ダイアログの一見、テキストフィールドだろ?ってところも実はEditorコンポーネントだったりします。


自作パッチは「テキストエディタのEditorコンポーネント以外では、IdeaVIMを無効にする」というものでしたが、本家のIdeaVIMには「テキストエディタのEditorコンポーネント以外では、Insertモードにしておく」という形で取り込まれました(こんときは [twitter:@oleg_s] さんだったかな?


なので、考えられる理由は「Consoleエリアも実体はEditorコンポーネントか、その派生でIdeaVIMが余計なコトしている」なんだと思います。

Text Objectのサポートについて

Text-Objectは一部しかサポートしてません。でも、Quote系(i" や a" など)はイケるはずですよ。
ついカッとなってtext objectのi", a", i', a'を実装した - marsのメモ


タグ系(it, at)はダメでチケットあがってます。やる気はあるのか、アサインはされてますが1年近く放置されてますね。(´・ω・`)
VIM-264 Support for change in tag, select in tag, delete in tag

おわりに

くどいですが、IdeaVIMを使うのに一番必要な心構えは「寛容さ」です。そもそもvimだと思うことが間違いですね。あれはIdeaVIMというvimっぽい何かです。

どうしても気に入らないところは、勝手に直してオレオレIdeaVIMを作ってしまう人が、(自分以外に)結構居ます。世界は広いなぁー。
Network Graph · JetBrains/ideavim · GitHub


ps.
ちなみに、IdeaVIMが入っていると、それが有効/無効*1に関わりなくProjectツールウィンドウから"Reformat Code..."が使えなくなります。これもワリと有名(?)な不具合です。
VIM-466 "Reformat Code..." action in pop-up menu is always disabled.

*1:Tools -> Vim Emulatorのチェックのこと