2015/11/30

vim で Esc キーを押すと fcitx を OFF にするとか

メインで使っているエディタが Sublime Text な無銘闇人です。

そんなことはさておき、サーバや PC の設定を端末エミュレータで操作している時に、テキストファイルを軽く修正することなんてよくあります。さすがに毎回、Sublime Text を開くのは仰々しくて (既に別のプログラムのソースでタブがいっぱいの時とかは起動が重いし)、そんな時は結局 vim で編集してたりします。

そして、時々、後々のためと思って、何のディレクトリかの説明を README.txt なんてファイルに残したりするのですが、vim で日本語を入力すると、以下の手順を踏むことになるわけです。
  1. i で vim のインサートモードに切り替え
  2. 全角半角キーを押して、Fcitx の mozc を ON にして日本語入力モードに切り替え
  3. 日本語で説明を入力
  4. 全角半角キーを押して、Fcitx の mozc を OFF にして英数字入力モードに切り替え
  5. Esc キーを押して vim のノーマルモードに切り替え
4 と 5 はどちらからやってもいいのですが、時々 4 の操作を忘れたままノーマルモードに入って、保存しようとすると、全角で「:wq」となってコマンドを受け付けてくれないのですよね。そもそも、ノーマルモードで日本語を打つことはほとんどないので、4 と 5 が同時に終わってくれれば助かるのです。

で、私がしようとしていることは、もう大抵のギークな人たちがたどり着いているので、検索するだけで解決策を紹介するページがわんさか出てきます。インターネットバンザイ!

代表的なのは 3 つでしょうか。

私のオススメは「Linux の IM (InputMethod) の Fcitx を gVim で快適に使うプラグイン - 地獄の猫日記」で紹介されているプラグインを使う方法。
NeoBundle というプラグイン管理マネージャを導入すれば楽々です。NeoBundle の導入については「NeoBundleによるVimプラグイン管理とおすすめプラグイン - Catcher in the tech」で。



その他、「Ubuntu上のVimでIME制御する - Qiita」の方法も試してみました。
これは、NeoBundle いらずで、とってもシンプル…なのですが、これを有効にするとどういうわけか、インサートモードでカーソル (矢印キー) でカーソルを移動させようとすると ABCD のいずれかが入力されます。ちなみに、vi互換モードを設定でオフ (set nocompatible) と明示してても症状が出ます。
原因を調べたら vim の深みにはまりそうなので、やめておきます。上の方法も見つかりましたし…。

あともう一つの方法が「Linux - FcitxのIMEをEscapeでOffにする - Qiita」で紹介されている fcitx の本来の機能 (設定) を使う方法です。これは、GUI からは設定できませんが、設定ファイルをちょちょいといじるだけで実現可能なのでシンプルです。
が…残念ながら、Esc キーを 2 回押す必要があるようです。
1 回目は Fcitx の OFF、2 回目が vim のノーマルモード切り替えとなります。
結局、キー入力が 5 段階なので、見送りました。


これで、vim で日本語入力での作業も楽になりました。

以上、備忘録でした。

0 件のコメント:

コメントを投稿