在我在Vim插入模式下的日常工作中,我使用了我习以为常的克罗地亚语键盘布局(HR)。在正常模式下,我更熟练的是使用英文键盘布局(EN),因为它有括号[]和弯曲括号{},并且通常Vim的快捷键可以更好地使用它。
有没有办法在模式之间自动更改键盘模式?
答案 0 :(得分:4)
Vim可以使用 keymap 文件在插入模式下翻译键入的键;它甚至还带有一个克罗地亚人($VIMRUNTIME/keymap/croatian.vim
)! :help mbyte-keymap
很好地解释了这一点:
当键盘没有产生您要输入的字符时 文本,您可以使用'keymap'选项。这将翻译一个或多个 (英文)字符到另一个(非英语)字符。这只会发生 在键入文本时,而不是在键入Vim命令时。这避免了必须切换 在两个键盘设置之间。
基本上,这种配置应该这样做(与在操作系统中使用英文键盘布局一起):
:set keymap=croatian
任何你这样使用它:
在插入和命令行模式下,您可以使用CTRL- ^在使用之间切换 键盘映射与否。 对于带有'iminsert'选项的插入模式,会记住此标志。
答案 1 :(得分:0)
如果您确实需要更改默认键盘布局,而不是插入,而是普通模式(可能还有其他模式),您可以'使用 keymap 功能。相反,您必须使用外部命令来切换操作系统的输入区域设置(如果可以在Windows中,可能通过how to change keyboard layout via command line cmd exe on windows xp)。草图:
:autocmd InsertLeave * call system('locale-change EN')
:autocmd InsertEnter * call system('locale-change HR')