将撰写键添加到OS X


10

我想将键盘上的一个键更改为Compose键,以便可以轻松键入常见的重音符号或字符,例如:Compose+ e+ '->é。

是否可以更改设置或安装新程序来添加此功能?举例来说,我想用Caps LockCompose


1
如果您使用的是OS X Lion,默认情况下,按住字母键将为您提供常见的带重音符号的列表,您可以使用数字键从中选择。
Dan J

1
仅在某些应用中。而且只有Apple为您选择的内容不完整。
MikeyB

1
这个问题(和答案)也相关: superuser.com/questions/202695/real-compose-key-on-mac-os
elaichi

1
FWIW,苹果的预先批准其中的列表重音你可以选择人物可以被黑客攻击
丹尼尔

Answers:


20

我写了一个完整的文章解释了如何建立一个真正的书写键( Right Option + '+ eé为例),使用KeyRemap4MacBook和具体可可输入规则的组合。

步骤1:选择撰写键

选择“编写”键,以便可以轻松访问它,但不会阻止您执行通常的操作。我将Right Option密钥用作“撰写”密钥。我已经有了一把Left Option钥匙,所以正确的钥匙对我来说有点用。它以某种方式与Compose旧的Sun键盘上的键的位置匹配。

那将是Right Option在Mac键盘上。我建议。

步骤2:重新映射Compose键

问题是Mac OS X键盘的首选项:

  • 不要让您区分Left OptionRight Option
  • 只允许您将修饰键重新映射到另一个修饰键(或什么都不映射)

幸运的是,有KeyRemap4MacBook可以让您用键盘进行非常低级的操作。安装它。

现在,我们将组合键重新映射到下一层将要理解的内容。我Shift Control F13为此选择了。您不太可能需要该组合键。

在文件中~/Library/Application Support/KeyRemap4MacBook/private.xml输入以下内容:

<?xml version="1.0"?>
<root>
  <item>
    <name>Send Shift-Ctrl-F13 for Right Option</name>
    <identifier>private.send_shift_ctrl_f13_for_ropt</identifier>
    <autogen>--KeyToKey-- KeyCode::OPTION_R,
                          KeyCode::F13, ModifierFlag::SHIFT_L
                                      | ModifierFlag::CONTROL_L
    </autogen>
  </item>
</root>

最后,从系统偏好设置中,打开KeyRemap4MacBook设置,然后单击ReloadXML按钮。然后激活新选项。

步骤3:创建撰写绑定

最后一步是创建实际的绑定。我选择从/usr/share/X11/locale/en_US.UTF-8/ComposeDebian系统上导入规则。

BobKåres编写了一个脚本,该脚本可让您将X11编写规则转换为Cocoa键绑定。

Compose您可以使用Bob的脚本转换自己的文件,也可以从本文下载我的DefaultKeyBinding.dict。将其保存在中~/Library/KeyBindings/DefaultKeyBinding.dict

注意:默认情况下,鲍勃的脚本使用F13而不是,Shift Ctrl F13所以DefaultKeyBinding.dict您需要更改:

"\UF710"

变成:

"^$\UF710"

如果由于某种原因您决定进行其他组合,请查看Xah Lee的本文,以查找正确的语法。


链接的内容看起来像是解决此问题的绝佳解决方案,但“与众不同”的答案不仅限于链接。可以包含链接,但请在答案中进行总结或摘录。这个想法是使答案独立存在。
丹尼尔

@DanielLawson当然,这很有道理;我将更新我的答案。
sam hocevar 2012年

在那里,我复制了大部分文章。我可以这样做,因为我拥有它:-)
sam hocevar 2012年

真棒的答案;+50互联网。(严重的是,一旦系统允许,我会立即给予这笔赏金)
Daniel

很高兴您内联该链接,因为它现在已经死了!(如果它已移动,您可能希望对其进行更新。)
wchargin

13

默认情况下,“死键”功能类似于您想要的功能。要获取字母é,请按Option ⌥+ e,然后按e

按下+后e,您会看到一个´突出显示的字符(我的计算机上为黄色)。按下任何带有该重音符号的字母(这会因您的键盘语言而异,对于EN-US,它是é,ú,í,ó和á),您将获得该字母的重音版本。还有其他可能的重音:+ `给出重音符号(`),+ e给出重音符号(´),+ u给出音调/变音符号(¨),+ i给出音调符号(ˆ),+ n给出波浪号。 (〜)。非美国键盘布局(尤其是威尔士语)具有更多的重音符号,并且允许更多字母表示相同的重音符号。键盘查看器有助于确定布局目前支持哪些组合。

如@djacobson所述,如果您在Lion上,则可以按住一些字母以查看该字母的各种带重音选项。


如果您使用其他键盘布局,则可能不是⌥+e。要查看它是哪一个,请打开Keyboard Viewer(从语言任务栏图标上),然后按。以黄色显示的键表示组成字符
CiprianTomoiagă17年

2

在专用键盘布局上撰写琴键

我写了US custom,它是实现compose键的键盘布局。

在Mac OS X上,有两种实现组合键的方法:可以通过Cocoa文本系统(如Sam Hocevar最有用的答案中所述)或专用键盘布局来实现。两种方法各有利弊:

  • Cocoa文本系统的组合键实现将独立于所选键盘布局而工作。DefaultKeyBinding.dict相比之下,该文件中的Cocoa文本系统设置很容易修改。
  • 具有键盘布局的组合键实现将在所有应用程序的整个OS上运行,而不仅仅是在Cocoa应用程序中。可以通过选择其他键盘布局来使用UI来打开和关闭它。键入组合组合时会有视觉反馈(这会稍微改变行为)。

键盘布局的安装很容易:

  1. 下载并打开uscustom.2012-08-28.zip
  2. 该文件移动UScustom.keylayoutUScustom.icns到之一:
    • /Library/Keyboard Layouts/ (适用于所有用户)
    • ~/Library/Keyboard Layouts/ (只为您,不需要管理员权限)
  3. 在“ 语言和文本首选项”窗格的“ 输入源”选项卡中激活美式自定义键盘布局,因此您可以从输入源菜单栏项目中选择它-它的图标显示带有“ C”的美国国旗,“ custom”或“撰写”:。美国自定义图标

美国自定义键盘布局的撰写键映射到两个不同的键:

  • ISO处有一个撰写键§(这是ISO键盘的多余键; ISO键盘是返回键的形状类似于大写字母L的键)。
  • Shift+ Control+ 处还有另一个撰写键F13。这与Sam Hocevar选择的映射相同,因此,如果您想将compose键重新映射到right选项键,则可以完全按照他的回答中所述的仔细解释。

将compos分配给capslock

如果你想分配合成到CAPSLOCK键(如在原来的问题),你需要高山文彦的PCKeyboardHack除了KeyRemap4MacBook:

  1. 安装PCKeyboardHack。
  2. 打开PCKeyboardHack首选项窗格。
  3. 选中更改大写锁定复选框。
  4. 双击“ 更改大写锁定”键码,然后输入(ISO )。10§

这与美国自定义键盘布局组合键一起使用。为了将Cocoa文本系统的撰写键(如Sam Hocevar所述)分配给capslock,则需要执行另一步:

使用KeyRemap4MacBook,将ISO重新映射§Shift+ Control+ F13(或任何您的撰写密钥)。为此,请按照Sam Hocevar仔细解释的步骤进行操作,但是要更改此代码~/Library/Application Support/KeyRemap4MacBook/private.xml

<?xml version="1.0"?>
<root>
<item>
  <name>Send Shift-Ctrl-F13 for ISO Section</name>
  <identifier>private.send_shift_ctrl_f13_for_iso_section</identifier>
  <autogen>
    --KeyToKey--
    KeyCode::UK_SECTION, ModifierFlag::NONE,
    KeyCode::F13, ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L
  </autogen>
</item>
</root>


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.