9 votes

Emacsify OSX partout: avancer d'un mot (⌥ + F) et reculer d'un mot (⌥ + B) au lieu de caractères spéciaux.

Oui, OS X prend déjà en charge + et + pour déplacer le curseur vers l'arrière et vers l'avant d'un mot, mais atteindre les touches fléchées est ennuyeux. Alors, pourquoi ne pas plutôt avoir +B et +F pour cela? Je veux dire, je n'ai jamais écrit le symbole intégral intentionnellement avec +B (à part maintenant).

En bref, je préférerais avoir un comportement similaire à Emacs (pas seulement, disons, ^+F pour aller vers l'avant d'un caractère) dans tout l'OS X.


Question connexe: Arrêtez d'utiliser la touche Option du clavier Mac comme un modificateur de caractère

7voto

Fuzzy Purple Monkey Points 702

DefaultKeyBinding.dict

Créez ~/Bibliothèque/KeyBindings/ et enregistrez une liste de propriétés comme ceci sous le nom de ~/Bibliothèque/KeyBindings/DefaultKeyBinding.dict:

{
  "^ " = setMark:;
  "^/" = undo:;
  "^l" = selectParagraph:;
  "^u" = deleteToBeginningOfParagraph:;
  "^w" = deleteToMark:;
  "^x" = {
    "^x" = swapWithMark:;
    "^m" = selectToMark:;
  };
  "^V" = pageDownAndModifySelection:;
  "~@" = selectWord:;
  "~b" = moveWordBackward:;
  "~c" = (capitalizeWord:, moveForward:, moveForward:);
  "~d" = deleteWordForward:;
  "~f" = moveWordForward:;
  "~l" = (lowercaseWord:, moveForward:, moveForward:);
  "~r" = centerSelectionInVisibleArea:;
  "~u" = (uppercaseWord:, moveForward:, moveForward:);
  "~v" = pageUp:;
  "~w" = (deleteToMark:, setMark:, yank:, swapWithMark:);
  "~B" = moveWordForwardAndModifySelection:;
  "~F" = moveWordForwardAndModifySelection:;
  "~V" = pageUpAndModifySelection:;
}

DefaultKeyBinding.dict ne fonctionne pas dans certaines applications comme Xcode ou Firefox. Les méthodes qui utilisent l'anneau de suppression suppriment la mise en forme du texte enrichi. Les combinaisons de touches qui entrent dans des états de touches mortes (comme l'option-u dans la disposition du clavier américain) ne peuvent pas être réassignées.

Voir aussi http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Emacs%20Opt%20Bindings.dict. transposeWords: ne fonctionne pas dans la plupart des applications. openDocument: et saveDocument: ne fonctionnent pas dans les applications qui utilisent la sauvegarde automatique, et performClose: ne fonctionne pas partout non plus.

Voir http://www.hcs.harvard.edu/~jrus/site/cocoa-text.html ou http://osxnotes.net/keybindings.html pour plus d'informations.

KeyRemap4MacBook

Une option consiste à activer les paramètres dans le groupe prédéfini de mode Emacs:

Une autre option est d'enregistrer un fichier comme ceci sous le nom de ~/Bibliothèque/Application Support/KeyRemap4MacBook/private.xml:

    EMACSMODEIGNORE
    com.gnu.Emacs
    com.apple.Terminal
    com.googlecode.iterm2
    com.vmware.fusion
    com.vmware.proxyApp.

    emacs
    private.emacs
    EMACSMODEIGNORE
    __KeyToKey__ KeyCode::P, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_UP
    __KeyToKey__ KeyCode::N, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_DOWN
    __KeyToKey__ KeyCode::B, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_LEFT
    __KeyToKey__ KeyCode::F, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT
    __KeyToKey__ KeyCode::P, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, VK_SHIFT
    __KeyToKey__ KeyCode::N, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, VK_SHIFT
    __KeyToKey__ KeyCode::B, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_SHIFT
    __KeyToKey__ KeyCode::F, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_SHIFT
    __KeyToKey__ KeyCode::B, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION
    __KeyToKey__ KeyCode::F, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION
    __KeyToKey__ KeyCode::B, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, VK_OPTION | VK_SHIFT
    __KeyToKey__ KeyCode::F, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, VK_OPTION | VK_SHIFT
    __KeyToKey__ KeyCode::D, VK_OPTION | ModifierFlag::NONE, KeyCode::FORWARD_DELETE, VK_OPTION
    __KeyToKey__ KeyCode::V, VK_OPTION | ModifierFlag::NONE, KeyCode::PAGEUP
    __KeyToKey__ KeyCode::V, VK_OPTION | VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEUP, VK_SHIFT
    __KeyToKey__ KeyCode::V, VK_CONTROL | VK_SHIFT | ModifierFlag::NONE, KeyCode::PAGEDOWN, VK_SHIFT
    __KeyToKey__ KeyCode::U, VK_CONTROL | ModifierFlag::NONE, KeyCode::DELETE, VK_COMMAND

Ensuite, ouvrez l'application KeyRemap4MacBook, appuyez sur le bouton ReloadXML, et activez le paramètre.

Modifiez les codes clés si vous utilisez une disposition de clavier comme Dvorak ou Colemak.

Voir https://pqrs.org/macosx/keyremap4macbook/xml.html.en ou http://osxnotes.net/keyremap4macbook.html pour plus d'informations.

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