Vim 针对标准美国键盘进行了优化:
如果我们想将其与以下 QWERTZ 键盘(在奥地利和德国常见)一起使用:
我们应该做什么?(当然,除了使用美国键盘映射)
特别有问题的是:
、;
、/
、?
键和反引号,它们在上面的 QWERTZ 键盘上经常使用,很难触及并且非常违反直觉。例如,按 后f
,x
搜索下一个'x';
涉及按转移钥匙。
也许以下修改~/.vimrc
是个好主意?
nnoremap ü `
nnoremap ä /
nnoremap Ä ?
nnoremap ö ;
nnoremap Ö :
nnoremap : <Nop>
(以及相同的行,vnoremap
而不是nnoremap
)
当然,还必须禁用死键(例如,我们可以使用ctrl
+^
来切换缓冲区)。将大写锁定与转义交换也很有帮助。所以我们将其插入到文件中/usr/share/X11/xkb/symbols/de
:
partial alphanumeric_keys
xkb_symbols "switch_esc_caps" {
include "de(nodeadkeys)"
name[Group1] = "Germany B";
key <CAPS> { [ Escape ] } ;
};
~/.Xsession.d
并将脚本放入目录中:
#!/bin/bash
setxkbmap -layout de -variant switch_esc_caps
这样一切都好吗?至少它看起来有效......有没有更干净的方法?
现在仍然存在问题:
反引号也是最后一个位置的标记,有没有办法重新定义这个?因此,这
ü
将成为最后一个位置的标记,我们可以通过按ü
,ü
?返回到最后一个位置。尽管按下
ä
可打开搜索,但在替换命令中我们仍然必须使用/
.也许这不是一个好主意,但在 sed 中,人们可以选择与 不同的分隔符
/
,例如:'abc' | sed -e 's-abc-def-g'
vim 中可能有类似的东西吗?