有谁成功永久修复了 Mac Home/End 键的功能吗?

有谁成功永久修复了 Mac Home/End 键的功能吗?

我使用的是 OSX 10.8+,有没有人成功永久修复了 Mac Home/End按键功能?我的意思是Home/End实际上转到行首和行末。

KeyRemap4MacBook 工作原理几乎但在某些情况下它仍然不起作用。

我认为可以使用 setxkbmap 解决此问题。我将在接下来的几天内阅读文档……但还有其他人解决了这个问题吗?

答案1

重新映射 home 和 end 的另一种方法是将这样的属性列表保存为 ~/Library/KeyBindings/DefaultKeyBinding.dict:

{
  "\UF729" = moveToBeginningOfLine:;
  "\UF72B" = moveToEndOfLine:;
  "$\UF729" = moveToBeginningOfLineAndModifySelection:;
  "$\UF72B" = moveToEndOfLineAndModifySelection:;
}

它在很多地方都不能像 KeyRemap4MacBook 那样发挥作用,但误报率也较低。

如果你使用 KeyRemap4MacBook 中的预定义设置之一,你可以通过从此 XML 文件私有文件

<?xml version="1.0"?>
<root>
  <item>
    <name>Use PC Style Home/End (except in Virtual Machine,RDC)</name>
    <appendix>(Change Home to Command+Left)</appendix>
    <appendix>(Change End to Command+Right)</appendix>
    <appendix>(+ Change Home to Control+A in Emacs,Terminal,X11,Eclipse)</appendix>
    <appendix>(+ Change End to Control+E in Emacs,Terminal,X11,Eclipse)</appendix>
    <identifier>remap.pclikehomeend</identifier>
    <block>
      <only>DREAMWEAVER</only>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END,  ModifierFlag::SHIFT_L</autogen>
    </block>
    <block>
      <only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END</autogen>
    </block>
    <block>
      <not>EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE</not>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME, VK_COMMAND, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME, VK_CONTROL, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,  VK_COMMAND, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,  VK_CONTROL, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME,             KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,              KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
    </block>
    <block>
      <only>EMACS, TERMINAL, X11, ECLIPSE</only>
      <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
      <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::E, ModifierFlag::CONTROL_L</autogen>
    </block>
  </item>
</root>

您可以使用 appdef 元素来指定新的应用程序:

<appdef>
  <appname>TEXTMATE</appname>
  <equal>com.macromates.TextMate.preview</equal>
  <equal>com.macromates.TextMate</equal>
</appdef>

答案2

试用 Karabiner-Elements:https://karabiner-elements.pqrs.org/

这是我在 MacOS Sanoma 中成功映射 home 和 end 键的唯一方法 ( 14.3.1)

相关内容