我最近学习了一些VIM hackery,我学到了很多有用的命令,并且在使用VIM编辑文本方面非常有效。我正在使用芬兰qwerty键盘布局(见下图),这对于编程来说非常糟糕。通过按 shift 或 alt gr 和 number 键发生所有常用的编码特殊字符()[]{}/\
,但我已经很习惯。我不想改变我的键盘布局,因为我用我的母语进行了大量的写作和IRC聊天,为此我需要ä
和ö
个字符(å
是对我来说没用,只有瑞典人使用那个)。
我的问题是默认情况下某些VIM命令的键映射相当困难,例如go-to-tag-under-cursor是^],转换为 Ctrl - AltGr - 9 在芬兰语键盘上。这需要我用我的左手按左控制键,用右手拇指按 alt gr 并将右手食指伸到数字9 关键。这就像使用emacs和/或演奏古典吉他一样。不完全符合人体工程学。
这是键盘布局的样子:
注意:通过按 AltGr (右Alt)和相应的键来写入标记为蓝色的键。红色的是双键组合字符或死键,它们不会自己给出一个字符。 F.ex.键入ü
字符首先按¨^〜键,然后按 u 。重音键也是如此。这些死键在VIM中是不可映射的。
所以基本上我有3个额外的字母键(ä ö å),但它们不能多次映射,修饰键不与他们合作(在VIM中)。我可以将某些内容映射到ä
,但不能Ä
或<C-ä>
。
现在,我正在寻找来自芬兰语/瑞典语或其他非美国键盘布局用户的VIM设置。请分享您的密钥映射,.vimrc提示以及其他可能有用的内容。
答案 0 :(得分:5)
我只是在编码时保持键盘采用US布局,并且在编写需要重音字母或其他语言特定字符的文本时才切换到本地布局(意大利语)。毕竟它只是一个按键来切换,没有什么比美国的编程布局更好。我尝试了一下,但发现指定大量的映射来解决这个问题要比完全需要的布局切换麻烦得多。
答案 1 :(得分:2)
我的解决方案是使用美国和FIN / SWE布局的自定义组合。工作得很好(或至少比可怕的鳍布局更好)。
该图像可能没有我所做的所有角色,但大多数都是。
答案 2 :(得分:2)
您可以使用langmap和keymap设置whim VIM。我用它来做colemak。您可以指定自己的布局。
h keymap
h langmap
答案 3 :(得分:1)
作为一个实际的权宜之计,你能不能简单地在布局之间切换?
例如,在Ubuntu中,您可以设置热键,通过转到Preferences → Keyboard → Layouts → Options → Key(s) to change layout
轻松切换布局。我使用两个Shift键在布局之间快速移动,甚至还有一个选项,以便每个窗口都有自己的布局设置,如果您在编写文档/电子邮件/等时使用美国英语布局在Vim中编程,则该选项很有效。在其他窗口中的不同布局。即使我必须切换布局(用于代码注释等),只需轻轻按下Shift按钮并继续进行。
在其他桌面环境/操作系统中应该有类似的方法来配置它。
答案 4 :(得分:1)
为此,我的解决方案是我定制了键盘布局,将美国布局的最佳方面融入了芬兰的布局。这样做的好处是,它可以将更改保持在最小程度,从而使学习曲线实际上不存在。
其背后的理念是最大程度地减少使用AltGr
的需求,并仍使其尽可能接近标准Fin布局。而且即使AltGr
下有一些键,您也不必用拇指按住修饰符的情况下也无需用右手笨拙地按下它们。
我用来进行布局的程序对于MacOS是Ukelele,对于Windows是Microsoft Keyboard Layout Creator。我叫Finner.keylayout
/ Finner.klc
。
以下是基本布局(修饰符下有很多键),突出显示了更改的键:
答案 5 :(得分:0)
我只是将这些ctrl-combos映射到其他键绑定。
例如, ctrl - ] 映射到 meta - down 。