Mac Home/End исправлен раз и навсегда
Кто-нибудь успешно исправил Mac Home/End ключи навсегда? И я имею в виду Home / End на самом деле перейти к началу и концу строки.
KeyRemap4MacBook работает почти везде, но все еще существуют определенные ситуации, когда он не работает.
Я думаю, что это можно решить с помощью setxkbmap. Я буду читать документацию в ближайшие несколько дней... но кто-нибудь еще понял это?
OSX 10.8+
1 ответ
Другой способ переназначить начало и конец состоит в том, чтобы сохранить список свойств, такой как ~/Library/KeyBindings/DefaultKeyBinding.dict:
{
"\UF729" = moveToBeginningOfLine:;
"\UF72B" = moveToEndOfLine:;
"$\UF729" = moveToBeginningOfLineAndModifySelection:;
"$\UF72B" = moveToEndOfLineAndModifySelection:;
}
Он не работает в таком количестве мест, как KeyRemap4MacBook, но есть и меньше ложных срабатываний.
Если вы используете один из предопределенных параметров в KeyRemap4MacBook, вы можете настроить его, скопировав его с https://raw.github.com/tekezo/KeyRemap4MacBook/master/Tests/lib/string/data/checkbox.xml в private.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>