LoginSignup
0
1

More than 3 years have passed since last update.

mintty + tmux + Vim の環境で、insert mode 終了時に IME を off にする

Last updated at Posted at 2019-12-20

自分の環境

Windows -> mintty -> SSH -> tmux -> Vim

vimrc

if &term =~ 'tmux'
  let &t_EI .= "\ePtmux;\e\e[<0t\e\\"
elseif &term =~ 'xterm'
  let &t_EI .= "\e[<0t"
endif

mintty は要 ver. 3.0.2 以降。

過程

  • tmux なしだと "ここ" に書いてある設定で行けたのに、tmux の内からだとうまくいかなかった。
  • IME off の制御が tmux から mintty にうまく伝わっていないのだろうと推測。
  • この制御が Control Sequence Introducer (CSI) というもので実現されていると知る。
  • "ここ" にたどり着く。

その他

  • Insert mode を抜けてから IME が off になるまで少し時間差がある。この間のキーストロークが抜け落ちてしまう。どこでこのラグが発生しているのかはよく分からない。 コメントに書いた通り、\ePtmux;\e + \e\\ を追加したことによって時間がかかるようになったと思っていたが、そうではなく単に tmux の待ち時間が加わっていただけだった。
  • Tera Term でも同じように設定できるはず。
  • あと以下のように設定しておくと、IME on のときはカーソルが赤くなって分かりやすいのでとっても便利。
.minttyrc
IMECursorColour=255,0,0

参考 links

挿入モードを出る時にIMEをオフにする(SSH接続など端末エミュレータからVimを利用する場合)
tmux and control sequence character issue

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1