Есть отличный плагин vim-xkbswitch, который, к сожалению, уже не работает в Ubuntu, начиная с 14.10, кажется. Из-за чего приходится прибегать к такому:
function SetUSLayoutGnome()
silent !qdbus org.gnome.SettingsDaemon.Keyboard /org/gnome/SettingsDaemon/Keyboard org.gnome.SettingsDaemon.Keyboard.SetInputSource 0
endfunction
function SetUSLayoutXFCE()
silent !xkb-switch -s us
endfunction
function SetUSLayoutKDE()
silent !qdbus org.kde.keyboard /Layouts setLayout us > /dev/null
endfunction
Эта функция вешается на InsertLeave, и нормально переключает раскладку при выходе из insert. Вопрос: как запомнить раскладку и вернуть ее при повторном заходе в insert?
Пробовал копаться в коде vim-xkbswitch, не осилил.