1 votes

Liaisons de touches Emacs sur d'autres programmes

Je suis un utilisateur assidu d'Emacs et j'aimerais pouvoir utiliser certains de mes raccourcis clavier Emacs lorsque je modifie du texte dans d'autres applications.

Je comprends que je pourrais programmer ces macros avec Keyboard Maestro manuellement, mais j'ai été surpris de ne pas trouver de macros prédéfinies pour cela. Avant que je ne réinvente la roue, existe-t-il des référentiels de macros pour Keyboard Maestro ? Keyboard Maestro est-il livré avec un ensemble de macros qui facilitent ce processus ?

1voto

Fuzzy Purple Monkey Points 702

Les macros de Keyboard Maestro ont souvent des retards notables et ce n'est pas vraiment la meilleure méthode pour le remappage du clavier.

Vous pourriez créer ~/Library/KeyBindings/ et enregistrer une liste de propriétés comme ceci DefaultKeyBinding.dict à la place :

{
  "~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 ne fonctionne pas dans certaines applications comme Xcode ou Firefox. Les combinaisons de touches qui entrent dans des états de touches mortes (comme U dans la disposition du clavier américain) ne peuvent pas être réaffectées. Il existe également des méthodes telles que performClose: y openDocument: mais ils ne fonctionnent pas dans toutes les applications. Voir http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Emacs%20Esc%20Bindings.dict ou http://www.hcs.harvard.edu/~jrus/site/sélecteurs.html .

Une autre option consiste à utiliser un privé.xml comme ceci avec 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>

Le site codes clés doivent être modifiés pour les dispositions de clavier comme Dvorak ou Colemak. EMACS_MODE_IGNORE_APPS comprend les émulateurs de terminal, les applications Emacs et les VM, mais vous pouvez également ajouter des éléments d'appdef personnalisés .

Il y a également une Groupe de mode Emacs mais, par exemple, le paramètre permettant de changer F en F change également F en .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X