Enlaces de Emacs en otros programas

1

Soy un gran usuario de Emacs y me encantaría tener algunos de mis enlaces de teclado de Emacs al editar texto en otras aplicaciones.

Entiendo que podría programar estas macros con Keyboard Maestro manualmente, pero me sorprendió que no pudiera encontrar macros predefinidas para esto. Antes de reinventar la rueda, ¿hay algún repositorio de macros de teclado maestro por ahí? ¿Keyboard Maestro viene con algún conjunto de macros que facilitan este proceso?

    
pregunta Amelio Vazquez-Reina 02.02.2014 - 20:01

1 respuesta

1

Las macros de Keyboard Maestro a menudo tienen retrasos notables y no es realmente el mejor método para la reasignación de teclado.

En su lugar, podría crear ~/Library/KeyBindings/ y guardar una lista de propiedades como 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 no funciona en algunas aplicaciones como Xcode o Firefox. Las combinaciones de teclas que ingresan en estados de tecla muerta (como ⌥U en la distribución del teclado de los EE. UU.) No se pueden reasignar. También hay métodos como performClose: y openDocument: , pero no funcionan en todas las aplicaciones. Consulte enlace o enlace .

Otra opción es usar un private.xml de esta manera con 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>

Los códigos clave se deben cambiar Para distribuciones de teclado como Dvorak o Colemak. EMACS_MODE_IGNORE_APPS incluye emuladores de terminal, aplicaciones de Emac y más de un centavo. también agregue elementos de appdef personalizados .

También hay un grupo de modo Emacs predefinido , pero por ejemplo la configuración para cambiar ⌥F a ⌥ → también cambia ⌥⌘F a ⌥⌘ →.

    
respondido por el user495470 04.02.2014 - 00:28

Lea otras preguntas en las etiquetas