ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

【解決】GvimのESCが効かない…なぞ(・・?

(2021-10-20 初稿 - 2021-10-29 追記)

問題の発覚

職場のノートPCもDebianのbuster(10)からbullseye(11)にアップグレードした。

以下のページに記載したとおり、つまづくところはつまづいてある意味順調にアップグレードできた。

少し利用してみて、GvimのESC(エスケープ)の挙動が変なことに気がついた。

f:id:hymd3a:20211020190334p:plain

GvimでESCが効かない(・・?

まず最初に、この変な現象はGUI版のGvim(vim.gtk3)のみで確認したもので、ターミナル上のvim及びvim -gで起動した場合は正常に動作した。

$ ls -l $(which gvim)
lrwxrwxrwx 1 root root 22  7月  8  2020 /usr/bin/gvim -> /etc/alternatives/gvim
$ ls -l /etc/alternatives/gvim
lrwxrwxrwx 1 root root 17 10月 20 09:39 /etc/alternatives/gvim -> /usr/bin/vim.gtk3

具体的な現象

筆者は、VimでESCで挿入モードからノーマルモードへ移行するのに併せて、日本語入力をOFFにしている。具体的には、以下のコードを.vimrcに記述している。

inoremap <silent> <C-[> <ESC>:call system('fcitx-remote -c') <CR>

vimvim -gで立ち上げた場合は、正常にESCキーが働き、日本語入力もOFFになる。

しかし、Gvim(vim.gtk3)の場合は、ノーマルモードに移行するものの、日本語入力はOFFにならない。(-_-;)

まったくESCキーが効かないのではなく、ちゃんと挿入モードからノーマルモードへ移行するのでキーボードの故障ではないよう…う〜ん、不思議(・・?

どなたか、原因がわかったら教えてください。m(__)m

解決方法(2021-10-29追記)

以下のリンクを参照のこと。多謝m(__)m

上記リンクから以下のスクリプトを.vimrcに追記(少しだけ筆者改変)。

if executable('fcitx') || executable('fcitx5')
  autocmd InsertLeave * :call system('fcitx-remote -c')
  autocmd CmdlineLeave * :call system('fcitx-remote -c')
endif

これで、Gvimvimともに、日本語入力がOFFになる。

(追記終了)

当面の対処方法

ESCキーは効かなくても、Ctrl-[ キーは正常に動作し、挿入モードからノーマルに、かつ、日本語入力もOFFになるので、しばらく解決方法がわかるまではCtrl-[キーで対処することにする。

 

関連ページ