8 votos

Emacsify OSX en todo: ¿avance de palabra (⌥ + F) y retroceso de palabra (⌥ + B) en lugar de 'caracteres especiales'?

Sí, el OSX ya admite + y + para mover el cursor palabra-atrás y palabra-adelante, pero usar las teclas de flecha es molesto. Así que, ¿por qué no tener + B y + F ¿hacer esto? Es decir, ni una sola vez he escrito (intencionadamente) el signo integral con + B (aparte de ahora).

En resumen, preferiría tener un comportamiento similar al de Emacs (no sólo, digamos, ^ + F para el avance de caracteres) en todo el OSX.


Pregunta relacionada: Deje de usar la opción del teclado Mac como modificador del carácter

7voto

Fuzzy Purple Monkey Puntos 702

DefaultKeyBinding.dict

Cree ~/Library/KeyBindings/ y guardar una lista de propiedades como ~/Library/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 no funciona en algunas aplicaciones como Xcode o Firefox. Los métodos que utilizan el kill ring eliminan el formato del texto enriquecido. Las combinaciones de teclas que entran en estados de teclas muertas (como la opción-u en la distribución de teclado estadounidense) no se pueden reasignar.

Ver también http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Emacs%20Opt%20Bindings.dict . transposeWords: no funciona en la mayoría de las aplicaciones. openDocument: y saveDocument: no funcionan en aplicaciones que utilizan autoguardado, y performClose: tampoco funciona en todas partes.

Véase http://www.hcs.harvard.edu/~jrus/sitio/cocoa-text.html o http://osxnotes.net/keybindings.html para más información.

KeyRemap4MacBook

Una opción es habilitar los ajustes en la configuración predefinida Grupo de modos Emacs :

Otra opción es guardar un archivo como éste como ~/Library/Application Support/KeyRemap4MacBook/private.xml :

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>EMACSMODEIGNORE</appname>
    <equal>com.gnu.Emacs</equal>
    <equal>com.apple.Terminal</equal>
    <equal>com.googlecode.iterm2</equal>
    <equal>com.vmware.fusion</equal>
    <prefix>com.vmware.proxyApp.</prefix>
  </appdef>
  <item>
    <name>emacs</name>
    <identifier>private.emacs</identifier>
    <not>EMACSMODEIGNORE</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>
    <autogen>__KeyToKey__ KeyCode::U, VK_CONTROL | ModifierFlag::NONE, KeyCode::DELETE, VK_COMMAND</autogen>
  </item>
</root>

A continuación, abra la aplicación KeyRemap4MacBook, pulse el botón ReloadXML y active la configuración.

Cambiar el códigos clave si utilizas una distribución de teclado como Dvorak o Colemak.

Véase https://pqrs.org/macosx/keyremap4macbook/xml.html.en o http://osxnotes.net/keyremap4macbook.html para más información.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X