我最近学习了一些VIM技巧,我学到了很多有用的命令,并且在使用VIM编辑文本方面变得非常高效。我使用的是芬兰标准键盘布局(见下图)这对编程来说是相当可怕的。所有你通常编码的特殊字符()[]{}/\
都是通过按shift或alt gr和一个数字键来发生的,但我已经习惯了。我不想改变我的键盘布局,因为我做了相当多的写作和IRC聊天在我的母语,为此我需要的ä
和ö
字符(å
是无用的,只有瑞典人使用)。
我的问题是一些VIM命令在默认情况下有一个相当困难的键Map,例如go-to-tag-under-cursor是^],它在芬兰键盘上被翻译成Ctrl-AltGr-9。这需要我用左手按下左控制键,用右手拇指按下alt gr,并将右手食指伸到数字9键。这感觉就像使用emacs和/或弹古典吉他一样。不完全符合人体工程学。
以下是键盘布局的外观:
注意:标为蓝色的键是通过按AltGr(右alt)和相应的键写入的。红色的键是两个键组成的字符或本身不给予字符的死键。例如,要键入ü
字符,首先按^~键,然后按u。重音键也是如此。这些死键在VIM中是不可Map的。
所以基本上我有3个额外的字母键(äöå)可用,但他们不能Map超过一次,修饰键不与他们一起工作(在VIM中).我可以Map到ä
的东西,但不能Ä
或<C-ä>
.
现在我正在寻找芬兰语/瑞典语或其他非美国键盘布局用户对我的VIM设置的想法。请分享您的键Map,.vimrc提示和任何其他可能有用的东西。
7条答案
按热度按时间vaqhlq811#
我只是在编码的时候保留了美式布局的键盘,并且只在写需要重音字母或其他语言特定字符的文本时切换到本地布局(意大利语)。毕竟它只是一个按键切换,没有什么比美式布局更适合编程的了。我试了一下,但是发现指定大量的Map来解决这个问题比根据需要切换整个布局要麻烦得多。
ckocjqey2#
我的解决方案是,我做了一个自定义键盘布局,它将美国键盘布局的最佳方面结合到芬兰键盘布局中。它的好处是,它将更改保持在最低限度,因此学习曲线几乎不存在。
它背后的理念是尽量减少使用
AltGr
的必要性,并尽可能保持与标准的Fin布局接近。尽管AltGr
下有一些键,但它们都在左手边的数字下,所以你永远不必在用拇指握住修改器的同时用右手笨拙地按它们。我用来做布局的程序是macOS的Ukelele和Windows的Microsoft Keyboard Layout Creator,我把它叫做
Finner.keylayout
/Finner.klc
。下面是它的GitHub存储库:https://github.com/ruohola/finner
以下是基本布局(在修改器下有更多关键点),更改的关键点高亮显示:
x9ybnkn63#
我的解决方案是使用US和FIN/SWE布局的自定义组合。工作相当不错(或者至少比可怕的鳍布局好)。x1c 0d1x
那个图像可能没有我做的所有角色,但他们中的大多数无论如何。
6fe3ivhb4#
你可以在VIM中使用langmap和keymap设置。我在colemak中使用它。你可以指定你自己的布局。
y53ybaqx5#
作为一个实际的权宜之计,你能不能简单地在布局之间切换?
例如,在Ubuntu中,你可以设置热键,通过
Preferences → Keyboard → Layouts → Options → Key(s) to change layout
在布局之间轻松切换。我使用两个Shift键在布局之间快速移动,甚至还有一个选项,使每个窗口都有自己的布局设置。如果您在美国英语布局的Vim中进行编程,同时在其他布局的窗口中编写文档/电子邮件/等,那么这种方法非常有效。即使我不得不切换布局(代码注解等),也只需点击两个Shift按钮即可继续。在其他桌面环境/操作系统中应该有类似的配置方法。
yv5phkfx6#
我只是将这些ctrl组合键Map到其他键绑定。
例如,ctrl-]Map到meta-down。
v6ylcynt7#
在使用瑞典键盘25年,标准的瑞典布局,并积极使用Vim几年后,我有类似的想法OP的。
我一直在使用:
已经有一段时间了,但对我为
ctrl-]
和ctrl-[
提供的解决方案不太满意。我刚刚补充了一句:这似乎提供了可喜的改进(与@ruohola已经提到的《观察员报告》的一项调查结果相矛盾)。
对于瑞典式布局,当然没有什么解决方案是完美的,但我认为上面的组合,虽然修改了很少的默认值(这是我的标准之一),给出了一个可以接受的妥协。