How to automatically change keyboard layout on switch to vim normal-mode?
keyboard-layout, vim
Solution
Looks like, that cross-platform solution doesn't exist... So, under KDE I use the following:
function! SetUsLayout()
silent !qdbus org.kde.keyboard /Layouts setLayout us > /dev/null
endfunction
autocmd InsertLeave * call SetUsLayout()
Problem
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() ```