【发布时间】:2018-03-25 09:51:15
【问题描述】:
我想在 Windows 10 中使用 dvorak 布局来添加拉丁口音。我查看了诸如 this 和 this 之类的页面,并且我有一些布局。您可以在下图中看到这一点。
尽管如此,我仍然不能使用拉丁口音(~、^)。如何在 Windows 10 的 dvorak 布局中使用重音符号?
【问题讨论】:
我想在 Windows 10 中使用 dvorak 布局来添加拉丁口音。我查看了诸如 this 和 this 之类的页面,并且我有一些布局。您可以在下图中看到这一点。
尽管如此,我仍然不能使用拉丁口音(~、^)。如何在 Windows 10 的 dvorak 布局中使用重音符号?
【问题讨论】:
您可以使用AutoHotKey 创建一系列dead keys,这样您就可以添加所需的任何口音。例如,以下脚本将允许您使用 ~ 和 n 键来制作 ñ 或 Ñ。
~::
Input, key, L1, {delete}{esc}{backspace}
if(key=="n"){
Send {Asc 164}
}
else if(key=="N"){
Send {Asc 165}
}
else {
Send {Asc 126}%key%
}
return
~:: 行获取~ 击键,然后input 命令获取下一个字符 (L1) 并将其分配给变量 key。 Delete、Esc 和 Backspace 键都被列为转义键,它们将只返回输入的原始 ~。否则,如果您输入小写的n,脚本将发送 ñ (Send {Asc 130}) 的 ASCII 代码,而输入大写的 N 将发送 Ñ 的 ASCII 代码强>。键入其他任何内容都会返回 ~ 和您键入的下一个字母(最后的 else 命令发送 ~ 的 ASCII,后跟 key 变量的内容)。
对于不在基本 ASCII 中的重音符号,您需要使用 Unicode,如下所示:
^::
Input, key, L1, {delete}{esc}{backspace}
if(key=="u"){
Send {Asc 150}
}
else if(key=="U"){
Send {U+00DB}
}
else {
Send {Asc 94}%key%
}
return
注意写大写Û时的命令差异。
您可以使用if ... else if 命令将所需的任意数量链接在一起,以处理使用相同死键击的所有内容。只需确保在最后包含最后的else 语句和return 命令,然后再继续下一个死键和一组重音符号。这样做的缺点是您需要明确拼出所有要使用的死键和重音字符。幸运的是,它们都遵循相同的模式,这使得设置变得简单,即使可能很乏味。
更多关于 AutoHotKey Send 命令:https://www.autohotkey.com/docs/commands/Send.htm
更多关于 AutoHotKey Input 命令:https://www.autohotkey.com/docs/commands/Input.htm
ASCII 表:http://www.asciitable.com/
Unicode 表:https://unicode-table.com/en/
【讨论】:
您可以添加一个撰写键:左移右侧的键在 dvorak 中没有使用,因此可以映射为一个撰写键。您可以使用它来创建重音字符。例如制作:
á 输入 «compose» «a» «'»ö 输入 «compose» «a» «"»ß 输入 «compose» «s» «s»û 输入 «compose» «u» «^»☺ 输入 «compose» «:» «)»→ 输入 «撰写» «-» «>»✓ 输入 «compose» «t» «k»对于 Microsoft 的 windows,您必须添加一个 compose-key 工具,它不是内置的。我不记得我用了什么,因为我只在必要时使用 MS。对于 Debian Gnu/Linux(以及大多数使用 X 窗口系统的系统),它是内置的。
【讨论】: