我经常遇到这样的情况:我必须按下space才能“启动”我输入的命令,例如在我点击~
交换字母的大小写后。
这是为什么?
答案1
muru 和其他人正在从 vim 本身的可编程性和可配置性的角度来看待这个问题;其他评论回答者正在关注 SSH。但还有第三种截然不同的答案。
- 您的键盘布局支持死钥匙。
- 在您的布局中,~就是这样一个死键,可能映射到传统的
U+0303
“组合波浪号”(̃)。 - 您的布局采用 ISO/IEC 9995-3 和 ISO/IEC 9995-11 中规定的通常约定,即组合字符死键后跟Space一个等效的结果不结合、 间距、 字符。
因此,按下就是如何在终端模拟器中~Space获得一个简单的“波形符”(~) 字符;U+007E
以及如何实际执行 vim 命令。按键~本身根本不会通过终端发送字符,因为终端模拟器正在等待查看组合“死”键后接下来按下的内容。就 vim 而言,此时实际上还没有发生任何事情。
如果是这种情况,您可以通过进入插入模式然后按别的东西之后~。您按下的键当然取决于您选择的键盘布局。通常,~a将组合到ã此类布局中。
鲜为人知的标准主义
ISO/IEC 9995-3:2010 定义的“公共辅助组”旨在在不同的国家布局中保持不变。 “组合波浪号”字符U+0303
在次要组中具有标准位置。
因此:在符合 ISO/IEC 9995-3:2010 的键盘布局上,无论主要组布局如何,都应该能够将波形符与相同的按键序列组合起来。
- 这些键是⯖ Group2D12,以标准语言表示。 ⯖是建议用于雕刻“Group 2 Select”键的 Unicode 字形。大多数当前文档使用⇨, 原因很明显,如果您的 WWW 浏览器在前一句中显示空白键盘。 ☺
- 就人们可能在键顶上看到的实际雕刻而言,这将类似于Shift+ AltGr](PC 风格的美国布局)或Shift+ ⌥ Option](Mac 风格)。请注意,这是两个独立的和弦。单和弦Shift+ AltGr+]是另一回事。
这尤其意味着,在这里:如果您切换到布局,~其中不是死键,这可能就是您即将要做的,只要键盘布局支持 ISO/IEC“通用辅助组”,您仍然可以在需要时访问死键。
您的终端模拟器和键盘布局很可能不支持这一点,因为在撰写本文时具体的实现非常罕见。但这正是人们过去几年一直在推动的 ISO 键盘标准。