输入德语用美式键盘很吃力,有什么解决方案?

问题中描述的情况是电脑的实体键盘是一只美式键盘,然后在系统中使用德语布局。也就是说,按键盘上「;」键时,出现在屏幕上的是「ö」。许多国内的德语教师会推荐这个方法,因为它在 Windows 系统中设定起来最「直观」,只需要添加一个德语输入法即可,我自己也用过很久。但这可能并非最合理的解决方案,毕竟德语实体键盘(ISO 标准 QWERTZ 布局)的键位和英语有相当大的差异:

(图片来自维基百科)

当这一布局硬行加到国内常见的本该具有 ANSI 标准 QWERTY 布局的键盘上面时,会让输入变得十分困难,充满很多试错过程,因为键帽上面的标识与按键的结果不再完全对应。将两种布局内化成两套肌肉记忆的过程漫长又痛苦。如果因为从事某种特殊职业而不得不经常输入各种标点符号,则更容易引发右手腕管综合症。

所以更合理的解决方案也许应该是:使用能够输入特殊字母的 ANSI - QWERTY 布局。在 Windows 上面,这是 US - International 布局;在类 Unix + X11 系统上面,这种布局一般叫做「USA International (AltGr Dead Keys)」。

US - International 布局的特殊之处有两个:
  1. 按下右边的 Alt 键再同时按 Q、P、Y 会分别出现 ä、ö、ü,加按 Shift 会出现其大写版本;按右边的 Alt 和 S,会出现 ß(但大写 ß(ẞ)一般无法输入)。
  2. 按一次 ` 键(Esc 下、1 左侧的键)后,视操作系统不同可能不会有任何显示、也可能会显示一个带有虚线的 ` ;此时再按下另外一个元音字母键,就会显示出 è 、ì、ò 这样带有 grave 的字母。单 / 双引号键同样有类似效果。这种「按之后仿佛没有按下去」的按键叫做 dead key。
以下即为 US - International 布局示意图;图中列出的按键里,蓝色为按住右侧 Alt (称 AltGr,Alt Graphics)之后可以打出的字符,红色为可以跟其他字母组合的 dead key。仔细观察会发现,Ü 还可以通过 Shift + " 再按 U 打出来。

(图片来自维基百科)

Windows 上面添加 US - International 布局的方法其实跟增添德语输入法一样,具体可参见微软网站 How to use the United States-International keyboard layout in Windows 7, in Windows Vista, and in Windows XP 。类 Unix 系统不赘述。

当然,如果只是需要输入德语字母的话,dead key 可能并不是很有用的功能。如何修改去除输入法中的 dead key 留给读者作为练习。

Mac OS X 的状况有所不同,US 键盘默认的 US 布局其实已经可以输入 Umlaut,方法是先按(无论左右边)Option + U,然后分别按 A、O、U,Option + S 即可输入 Eszett。但如果想要输入更多附加符号,如 caron( ̌,拼音第三声的声调),则推荐 US - Extended 布局。具体可以输入哪些符号可以通过点击输入法图标后出现的「Show Keyboard Viewer」查看。另外从 Lion 开始,特殊字母还可以通过长按输入,不过效率太差。尽管 OS X 同样提供了 US - International PC 布局,但此布局仅仅是有 ` 和 ' 两个 dead key 而已,并不能通过 AltGr 组合另一个按键直接输入 Umlaut。



使用上述键盘布局的最大麻烦可能是输入带有特殊符号的字母需要至少按两次键,但是我觉得这样比强行使用德语布局理智一点。

- - -

德式前引号 „ 不但在 US - International 布局上打不出来,在德-奥地区使用的德语键盘上同样打不出来,PC 用户可能不得不借助 Alt + 小键盘数字键组合的方法,详见 HTML Sonderzeichen: Symbole aus der Typographie €⇔♥;OS X US 布局中可以通过 Option + Shift + , 组合打出。法式前引号情况稍好,US - International 布局可以通过 AltGr + ] 、[ 打出双层版本,单层同样需要 Alt + 小键盘数字键组合输入。OS X US 布局中:
  • » :Option + Shift + \
  • « :Option + \
  • › :Option + Shift + 4
  • ‹ :Option + Shift + 3

原发布于 https://www.zhihu.com/question/27880494/answer/38583067