在插入和普通模式之间更改键盘布局

时间:2015-03-02 15:32:54

标签: vim windows-7

在我在Vim插入模式下的日常工作中,我使用了我习以为常的克罗地亚语键盘布局(HR)。在正常模式下,我更熟练的是使用英文键盘布局(EN),因为它有括号[]和弯曲括号{},并且通常Vim的快捷键可以更好地使用它。

有没有办法在模式之间自动更改键盘模式?

2 个答案:

答案 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')