TL;DR
Linux環境のVSCode+Vim拡張でxremapを用いてインサートモードからノーマルモードに戻ったら
日本語入力(Fcitx)がオフになるようにする。
環境
- X Window System(Linux)
- VSCode+Vim拡張
- Fcitx
方法
xremapを使ってESC, <C-[>が押されたらfcitx-remote -c
コマンドを実行する。
以下詳細
xremapについて
xremapはk0kubun氏によるX Window Systemで動作するキーリマッパーツールです。
Linux環境用のKarabinerとして作らたもののようです。
特徴としては以下の3つがあります。
- アプリケーションごとの設定。
- シェルコマンドを呼び出せる。
- rootが必要ない
詳しくは作者k0kubun氏のブログで
Linux向けの最強のキーリマッパーを作った
インストールはこちらから
https://github.com/k0kubun/xremap
IMにFcitxを利用していればfcitx-remote -c
コマンドでIMがオフになるのでxremapでこのコマンドとESC
,<C-[>
キーとを紐付けします。
それでは設定ファイル
.xremap.config
window class_only: 'code' do
remap 'Escape', to: ['Escape', execute('fcitx-remote -c')]
remap 'Ctrl-bracketleft', to: ['Ctrl-bracketleft', execute('fcitx-remote -c')]
end
code
はVSCodeのWM_CLASS値です。Ctrl-bracketleft
は<C-[>
のことです。
あとはxremapをservice化して自動起動するようにしてやれば完成です。
謝辞
Thank Mr.k0kubun for xremap