Mac终端应用中的Meta Key

时间:2016-01-18 22:36:53

标签: terminal karabiner

我正试图找到一种方法,只使用左选项键作为osx终端中的Meta键,但保留正确的选项,包括正常的功能(特殊字符#,@等)。

有没有办法配置它以这种方式工作? (基本上我想实现与iterm只使用一个选项作为meta而另一个选项作为普通选项的相同功能)

编辑:此外,使用Karabiner的解决方案也将受到欢迎

3 个答案:

答案 0 :(得分:2)

从ant的解决方案开始并在Karabiner.app包中挖掘以了解它是如何工作的,我找到了一种方法,只使用Karabiner使其工作:

只需编辑您的Karabiner private.xml (可在~/Library/Application Support/Karabiner/private.xml中找到) 以下内容:

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>TERMINAL</appname>
    <equal>com.apple.Terminal</equal>
  </appdef>

  <item>
    <name>Option-Left to Meta in Terminal</name>
    <only>TERMINAL</only>
    <identifier>private.optionltometa</identifier>
    <autogen>__KeyToKey__ KeyCode::OPTION_L, KeyCode::VK_MODIFIER_EXTRA1</autogen>
    <include path="/Applications/Karabiner.app/Contents/Resources/include/checkbox/apps/terminal/meta_modifier_key.xml">
      <replacementdef>
        <replacementname>BEFORE</replacementname>
        <replacementvalue>KeyCode::ESCAPE</replacementvalue>
      </replacementdef>
      <replacementdef>
        <replacementname>AFTER</replacementname>
        <replacementvalue></replacementvalue>
      </replacementdef>
  </include>
</item>

</root>

然后启动Karabiner并按 Change Key 选项卡中的 Reload XML 按钮(我使用的是版本10.22.0,可能在新版本中更改了选项卡名称)

此方法的优点是,当您不使用终端时,不会禁用您的左选项密钥,因为使用Seil的解决方案会这样做。

答案 1 :(得分:1)

它现在支持延迟&#34;选项:: KEYTOKEY_DELAYED_ACTION&#34;

https://pqrs.org/osx/karabiner/xml.html.en#syntax-KeyToKey-options

答案 2 :(得分:0)

您应该可以使用SeilKarabiner的组合来完成此操作。首先,安装Seil并将Option_L键重新映射到密钥代码110,即PC应用程序密钥。然后在Karabiner中,展开 For Applications 树,然后仅启用终端,最后 Meta Modifier Key 。选择 PC应用程序密钥到终端中的元修改键选项。