phoenix-powerVimのノーマルモードに移行する際は、IMEをOFFにする設定です。

この辺り、MacBookとは相性が悪いのか、相当訳のわからない挙動をしています。多分、Fctixが内部で無理なことしてるせいでしょうが、キーバインド自体にまでよくわからない挙動が広がってしまい、Linuxでは、相変わらずこの辺の挙動をコントロールするのに苦戦しているみたいです。

まず、IMEをOFFにしたり、切り替えたりするキーの設定をすると、変な挙動が発生します。

これは、Fctixだけの問題かというと、iBusもなんか言われてたし、難しいんだろうなと思っています。

一応、やりたいことは実現できたものの、やはり、こういったツールを使っているので、どうしても無理が出てきます。

https://github.com/syui/fctix-off.vim

具体的には、C-jを押した時に、ノーマルモードへの移行と、IMEをOFFにしたいのですが、なかなかよくわからないことになっています。

実現できた方法は、xbindkeysでvimにwindowがフォーカスしてる時だけ、C-jの挙動を変更し、特定のキーを押したり、windowフォーカスを一度移し替えたりなど、あまりよくない方法を使用することになりました。

~/.xbindkeysrc
1
2
"~/.vim/bundle/fctix-off.vim/fctix-off.sh"
    Control + j
~/.vim/bundle/fctix-off.vim/fctix-off.sh
1
2
3
4
5
6
7
8
9
10
#!/bin/bash

if ! xdotool getwindowname `xdotool getactivewindow` | grep vim > /dev/null 2>&1 ;then
    xvkbd -xsendevent -text "\[Control]\j"
else
    xvkbd -xsendevent -text "\[Escape]"
    xdotool windowfocus `xdotool getactivewindow`
    xdotool key ctrl+j
    fcitx-remote -c
fi

https://github.com/syui/fctix-off.vim

あとは、コード見てください。(早く新しいサイトをデザインしないとなのですが、さすがに、仮想Macで書くのは辛すぎる…)

ついでに、Chromiumでアドレスバー(Omnibox)にて、初回起動時のみIMEがONにならない問題を同じような方法で解決してみました。

~/.xbindkeysrc
1
2
"~/.config/chromium/arch-chromium-xbindkeys-emacs/bindkeys/chromium_hangul.sh"
  Hangul

ちなみに、キーバイドは、xev, xbindkeys -kなどで調べてください。

~/.config/chromium/arch-chromium-xbindkeys-emacs/bindkeys/chromium_hangul.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash

if xdotool getwindowname `xdotool getactivewindow` | grep Chromium > /dev/null 2>&1 ;then
        xdotool windowfocus `xdotool search --onlyvisible --name lilyterm | head -n 1`
        xdotool windowfocus `xdotool search --onlyvisible --name chromium | head -n 1`
        #fcitx-remote -o
        #fcitx-remote -c
        xvkbd -xsendevent -text "\[Hangul]"
else

        xvkbd -xsendevent -text "\[Hangul]"
fi

# http://www.semicomplete.com/projects/xdotool/xdotool.xhtml
# https://developer.chrome.com/extensions/api_index
# https://developer.chrome.com/extensions/omnibox
# https://developer.chrome.com/extensions/commands

こちらも、あとはコードを見てください。

https://github.com/syui/arch-chromium-xbindkeys-emacs