How to automatically change keyboard layout on switch to vim normal-mode?

Aleksey Bakin picture Aleksey Bakin · Jun 11, 2012 · Viewed 8k times · Source

Sometimes I use vim to write non-US text, and when I wanna use any command in normal mode, I need to change layout to US. It's possible to do that automatically?

PS. I can do mapping like this, but in this case command looks like :ц instead :w - not pretty and typo-risk.

Update

I don't want to use keymap option, because I prefer switch languages by CapsLock. I've try to write autocmd for InsertLeave event, but failed...

Update 2

Probably anybody know, why the following not work?

function SetUsLayout()
  !setxkbmap us,ru
endfunction

autocmd InsertLeave * call SetUsLayout()

Answer

romainl picture romainl · Jun 11, 2012
:help langmap

is likely to provide all the info you need.