Макроси клавіатури Maestro часто мають помітні затримки, і це насправді не найкращий метод для перестановки клавіатури.
Ви можете створити ~/Library/KeyBindings/
та зберегти такий список властивостей, як цей, як DefaultKeyBinding.dict замість цього:
{
"~b" = moveWordBackward:;
"~f" = moveWordForward:;
"~F" = moveWordForwardAndModifySelection:;
"~B" = moveWordForwardAndModifySelection:;
"~d" = deleteWordForward:;
"~u" = (uppercaseWord:, moveForward:, moveForward:);
"~l" = (lowercaseWord:, moveForward:, moveForward:);
"~c" = (capitalizeWord:, moveForward:, moveForward:);
"~v" = pageUp:;
"~V" = pageUpAndModifySelection:;
"^V" = pageDownAndModifySelection:;
"^ " = setMark:;
"^w" = deleteToMark:;
"~<" = moveToBeginningOfDocument:;
"~>" = moveToEndOfDocument:;
"~/" = complete:;
"^l" = selectParagraph:;
"~h" = selectParagraph:;
"^_" = undo:;
"^/" = undo:;
"^x" = {
"^x" = swapWithMark:;
"^m" = selectToMark:;
};
}
DefaultKeyBinding.dict не працює в таких додатках, як Xcode або Firefox. Комбінації клавіш, які входять у стан мертвих клавіш (наприклад, U в розкладці клавіатури США), не можна перепризначити. Є також такі методи , як performClose:
і openDocument:
, але вони не працюють у всіх додатках. Див. Http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Emacs%20Esc%20Bindings.dict або http://www.hcs.harvard.edu/~jrus/site/selectors.html .
Іншим варіантом є використання private.xml на зразок цього з KeyRemap4Macbook :
<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>{{EMACS_MODE_IGNORE_APPS}}</not>
<autogen>__KeyToKey__ KeyCode::P, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
<autogen>__KeyToKey__ KeyCode::N, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::B, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::F, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
<autogen>__KeyToKey__ KeyCode::P, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::N, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::B, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::F, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::B, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION</autogen>
<autogen>__KeyToKey__ KeyCode::F, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION</autogen>
<autogen>__KeyToKey__ KeyCode::B, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION | VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::F, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION | VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::D, VK_OPTION | ModifierFlag::NONE, KeyCode::FORWARD_DELETE, VK_OPTION</autogen>
<autogen>__KeyToKey__ KeyCode::V, VK_OPTION | ModifierFlag::NONE, KeyCode::PAGEUP</autogen>
<autogen>__KeyToKey__ KeyCode::V, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEUP, VK_SHIFT</autogen>
<autogen>__KeyToKey__ KeyCode::V, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEDOWN, VK_SHIFT</autogen>
</item>
</root>
У ключових кодах повинні бути змінені для розкладки клавіатури , як Дворжак або Colemak. EMACS_MODE_IGNORE_APPS включає в себе емулятори терміналів, програми Emacs та VM, але ви також можете додати спеціальні елементи appdef .
Існує також заздалегідь визначена група режимів Emacs , але, наприклад, параметр для зміни ⌥F на ⌥ → також змінює ⌥⌘F на ⌥⌘ →.
EMACS_MODE_IGNORE_APPS
стосуєтьсяprivate.xml
фрагмента, який ви включили у відповідь?