如何在切换到vim普通模式时自动更改键盘布局?

Ale*_*kin 13 vim keyboard-layout

有时我使用vim来编写非美国文本,当我想在正常模式下使用任何命令时,我需要将布局更改为US.有可能自动完成吗?

PS.我可以这样做映射这样,但在这种情况下,命令如下:ц代替:W -不漂亮,错字风险.

更新

我不想使用keymap选项,因为我更喜欢CapsLock的切换语言.我尝试为InsertLeave事件编写autocmd,但失败了......

更新2

可能有人知道,为什么以下不起作用?

function SetUsLayout()
  !setxkbmap us,ru
endfunction

autocmd InsertLeave * call SetUsLayout()
Run Code Online (Sandbox Code Playgroud)

rom*_*inl 6

:help langmap
Run Code Online (Sandbox Code Playgroud)

可能会提供您需要的所有信息.


Ale*_*kin 4

看起来,跨平台解决方案不存在......所以,在 KDE 下我使用以下内容:

function! SetUsLayout()
  silent !qdbus org.kde.keyboard /Layouts setLayout us > /dev/null
endfunction

autocmd InsertLeave * call SetUsLayout()
Run Code Online (Sandbox Code Playgroud)