Emacsify OSX: palabra-adelante (⌥ + F) y palabra-hacia atrás (⌥ + B) en lugar de 'caracteres especiales'?

Sí, el OSX ya soporta + y + para mover la palabra del cursor hacia atrás y hacia delante, pero alcanzar las teclas de flecha es molesto. Entonces, ¿por qué no tener + B y + F hacer esto? Quiero decir, no una vez he escrito (intencionalmente) el signo integral ∫ con + B (aparte de ahora).

En resumen, prefiero tener un comportamiento parecido a Emacs (no solo, digamos, ^ + F para carácter-forward) en todo el OSX.

  • ¿Necesito descifrar el disco duro antes de la reparación?
  • La velocidad de respuesta del keyboard es demasiado baja y las windows emergentes de sugerencias de caracteres aparecen periódicamente
  • ¿Qué tan seguros son los files PDF protegidos con contraseña que se crean con la Vista previa?
  • ¿Existen algunas características como la label automática de Winamp para iTunes?
  • ¿Cómo obtengo información detallada del disco SMART en OS X (Mavericks o posterior)
  • ¿Qué hace realmente un file .app?

  • Pregunta relacionada: Detener el uso del keyboard del Mac Opción como modificador del carácter

  • ¿Puede un MacBook actuar como auricular bluetooth?
  • Configurar Kaleidoscope como herramienta de dif externa en IntelliJ?
  • Concisamente iniciar aplicaciones de Mac OS desde la command-line
  • Errores SSL de Safari
  • ¿Es posible establecer el idioma de salida de los commands de shell en algo que no sea el inglés?
  • ¿Puedo eliminar files o carpetas de / private / var / folders /?
  • One Solution collect form web for “Emacsify OSX: palabra-adelante (⌥ + F) y palabra-hacia atrás (⌥ + B) en lugar de 'caracteres especiales'?”

    DefaultKeyBinding.dict

    Crear ~/Library/KeyBindings/ y save una list de properties como esto 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:; } { { "^ " = 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:; } }; { "^ " = 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. Métodos que utilizan el anillo de matar eliminar el formatting de text enriquecido. Las combinaciones de teclas que entran en estados de key muertos (como la opción-u en la disposition de keyboard de los Estados Unidos) no se pueden reasignar.

    Véase 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 usan auto-save, y performClose: no funciona en todas partes.

    Consulte http://www.hcs.harvard.edu/~jrus/site/cocoa-text.html o http://osxnotes.net/keybindings.html para get más información.

    KeyRemap4MacBook

    Una opción es habilitar los ajustes en el grupo de modos Emacs pnetworkingefinidos:

    Otra opción es save un file como este 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> <? xml version = "1.0"?> <?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> <item> <?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> </ item> <?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 button ReloadXML y active la configuration.

    Cambie los códigos de key si utiliza una disposition de keyboard como Dvorak o Colemak.

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

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).