Reasignar "Inicio" y "Fin" al principio y al final de la línea

293

La mayor parte de mi tiempo de computación se gasta en Linux (con tiempo ocasional en Windows). En estas plataformas, las teclas Inicio y Fin saltan universalmente al principio o al final de la línea actual.

Me estoy acostumbrando a usar la única computadora Apple en mi vida, pero sigue siendo frustrante porque estas teclas parecen estar ligadas al principio y al final del documento y no parece haber ninguna tecla. para las acciones basadas en línea.

Mi pregunta:

  1. ¿Existen combinaciones de teclas que falten para el principio y el final de la línea? (Yo uso principalmente una Terminal, Chrome y LibreOffice)
  2. ¿Hay alguna forma de volver a vincular las funciones de estas teclas con las funciones con las que estoy familiarizado? Estoy dispuesto a renunciar a las versiones basadas en documentos que me parecen poco útiles.

También dos advertencias:

  1. No soy el único usuario en el sistema. Sería bueno si la configuración de mi usuario no rompiera la experiencia de otras personas. ¡Si esto no es posible, creo que probablemente tengo la preferencia más fuerte!
  2. Utilizo varios idiomas y cambio entre diseños de teclado, por lo que se espera que cualquier solución funcione incluso cuando se alterna entre diseños de teclado múltiples.
pregunta Caleb 18.06.2011 - 10:04

9 respuestas

269

Los accesos directos predeterminados para pasar al principio o al final de las líneas (ajustadas) son y . y o A y E se mueve al principio o al final de las líneas (o párrafos) sin envolver. y se mueven hacia atrás / adelante con palabras, y todas son compatibles con mantener Shift para seleccionar durante los movimientos correspondientes.

Puedes volver a asignar el inicio y finalizar creando ~/Library/KeyBindings/ y guardando una lista de propiedades como esta, como DefaultKeyBinding.dict :

{
    "\UF729"  = moveToBeginningOfLine:; // home
    "\UF72B"  = moveToEndOfLine:; // end
    "$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home
    "$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end
}

La mayoría de las combinaciones de teclas para editar texto en OS X se definen en /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict .

Aplicar cambios requiere volver a abrir aplicaciones. DefaultKeyBinding.dict es ignorado por algunas versiones anteriores de Xcode (funciona con la última versión 6.3.1), Terminal y muchas aplicaciones multiplataforma.

Consulte Sistema de texto de cacao y mi sitio web para obtener más información sobre las combinaciones de teclas personalizables.

Las combinaciones de teclas de la terminal se pueden personalizar en Preferencias > Configuraciones > Teclado. 3OH se mueve al principio de una línea y 3OF al final de una línea.

En Eclipse, los enlaces de teclas deben modificarse en Preferencias > General > Llaves. Debe modificar los enlaces predeterminados para los comandos Line Start y Line End (reemplace ⌘ ← por ↖ y ⌘ → por ↘). Para que la selección funcione, también modifique Seleccionar inicio de línea y Seleccionar final de línea .

PS: es posible que necesites cerrar sesión e iniciar sesión nuevamente para que ~/Library/KeyBindings/DefaultKeyBinding.dict cambie para que tenga efecto.

    
respondido por el user495470 18.06.2011 - 11:08
103

Actualmente estoy en Lion 10.7.4, y por alguna extraña razón, la edición de ~/Library/KeyBindings/DefaultKeyBinding.dict no me funcionó.

He encontrado que el KeyRemap4MacBook complemento de Preferencias del sistema (que ahora se llama Karabiner ) funciona realmente bien, y también puede volver a mapear una variedad de claves sin tener que editar ningún archivo de texto. P.ej. cambiar las teclas de página arriba / página abajo para que el cursor también siga en la página arriba / abajo.

Simplemente descargue el complemento y, en el panel de Preferencias del sistema, vaya a la sección For PC Users y verifique Use PC Style Home /End .

Tenga en cuenta que elegí (Change Home to Command+Left) en lugar de (Change Home to Control+A) , como si escogiera el primero, y si la línea estaba ajustada, el inicio me llevaría al principio de la línea ajustada, varias líneas arriba, en lugar de llevarme al principio de la línea actual.

    
respondido por el jklp 14.09.2012 - 05:40
40

Gracias a este artículo , descubrí cómo para volver a enlazar las teclas Inicio y Fin a las acciones basadas en línea para cada usuario que funcionan en las distribuciones de teclado.

Es necesario crear un archivo de diccionario con los códigos clave y los nuevos comandos para asignar, pero primero asegúrese de que exista la carpeta donde se ubicará al abrir un Terminal y ejecutar:

$ mkdir -p ~/Library/KeyBindings

Luego crea o edita el archivo en ~/Library/KeyBindings/DefaultKeyBinding.dict . Si no existía antes, agregue la sección completa a continuación. Si existe, simplemente agregue las cuatro filas nuevas dentro del bloque.

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Para activar la configuración, deberá cerrar la sesión de su usuario y volver a iniciar sesión.

Tenga en cuenta que esto cubre tanto la acción normal de mover el cursor como la combinación Shift + Home / End para seleccionar el movimiento del cursor.

    
respondido por el Caleb 18.06.2011 - 11:05
10

Estoy usando OS X Sierra, y la solución ~/Library/KeyBindings/DefaultKeyBinding.dict sugerida por otros usuarios funcionó parcialmente: algunas aplicaciones como TextEdit ahora tienen el comportamiento deseado, pero otras no. Google Chrome y Slack son dos que no parecen respetar el archivo DefaultKeyBinding.dict .

Para arreglar las aplicaciones restantes, usé BetterTouchTool para crear atajos de teclado específicos de la aplicación que vinculan a Home y End al sistema operativo Los atajos nativos de X Ctrl+A y Ctrl+E . BetterTouchTool no es gratis, pero hay un período de prueba de 45 días.

Para hacer esto:

  1. Instalar y lanzar BetterTouchTool
  2. Ir a los gestos > Pestaña del teclado
  3. En "Seleccionar aplicación", haga clic en + y elija la aplicación que desea corregir.
  4. Haga clic en "Agregar nuevo acceso directo", asigne la tecla Home en el campo "acceso directo de grabación" y configure "Activar otro método abreviado de teclado" a Ctrl + A. Repita para End y Ctrl + E.
  5. Cuando haya terminado, el panel debería tener este aspecto:
  6. En la Configuración avanzada de BetterTouchTool, permita que se ejecute en el inicio.

Nota: no salga de la aplicación BetterTouchTool o dejará de interceptar las pulsaciones de teclas. Simplemente cierre su ventana y debería continuar trabajando en segundo plano.

    
respondido por el mamacdon 31.01.2017 - 17:01
8

Estoy usando el impresionante KeyRemap4MacBook con la configuración personalizada a continuación.

Corrige Home / End en la mayoría de las aplicaciones y no arruina iTerm2.

De enlace

<?xml version="1.0"?>
<!-- ~/Library/Application Support/KeyRemap4MacBook/private.xml -->
<!-- Custom keyboard mappings for MBP using https://pqrs.org/macosx/keyremap4macbook/ -->
<root>
    <item>
        <name>Lari's PC Style Home/End</name>
        <appendix>(Change Home to Command+Left)</appendix>
        <appendix>(Change End to Command+Right)</appendix>
        <appendix></appendix>
        <appendix>{{ PC_STYLE_BINDINGS_IGNORE_APPS_DESCRIPTION }}</appendix>
        <identifier>lari.remap.pclikehomeend</identifier>
        <block>
            <only>DREAMWEAVER</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END,  ModifierFlag::SHIFT_L</autogen>
        </block>
        <block>
            <only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::END</autogen>
        </block>
        <!--
        <block>
            <only>EMACS, TERMINAL, X11, ECLIPSE</only>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  KeyCode::E, ModifierFlag::CONTROL_L</autogen>
        </block>
         -->
        <block>
            <not>{{ PC_STYLE_BINDINGS_IGNORE_APPS }}</not>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_UP,    ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,  MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_DOWN,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_HOME,             KeyCode::CURSOR_LEFT,  ModifierFlag::COMMAND_L</autogen>
            <autogen>__KeyToKey__ FROMKEYCODE_END,              KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
        </block>
    </item>
</root>
    
respondido por el Lari Hotari 31.01.2014 - 11:06
6

Encontré lo siguiente útil para iterm2 y zsh con citas de aquí :

  

Abre iTerm > Preference . Ir a profiles tab > Keys . Luego haga clic en el   Presione el botón + en la parte inferior de la lista de teclas, presione Home (o Fn+left arrow en el teclado inalámbrico de Apple), debajo de Action seleccione Send Escape Sequence , y luego escriba [1~

Repita para la clave End con [~4 para la secuencia de la tecla de escape.

  

Si está usando zsh, también haga esto:

     

1) Coloque lo siguiente en su archivo ~/.zshrc

bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line
     

2) Ejecutar source ~/.zshrc en cualquier terminal abierta.

    
respondido por el RationalDev 30.10.2016 - 05:14
5

Imho la mejor herramienta para hacer cambios en el teclado es Karabiner (antiguo nombre KeyRemap4MacBook). Fuente abierta ( enlace ) pero también disponible como aplicación ( enlace ). Llevo mucho tiempo buscando y nunca he encontrado nada mejor.

    
respondido por el HaFr1954 12.01.2016 - 13:35
2

Logré esto usando Karabiner Elements .

Debe actualizar la sección de reglas de ~/.config/karabiner/karabiner.json con la matriz JSON del código a continuación. Al hacerlo, se vuelven a asignar las teclas de inicio y finalización para que funcionen de la misma manera que funcionan en PC / Windows.

{
  "rules": [
    {
      "description": "change home key to command + left_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "home"
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change home key to command + left_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "home",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow",
      "manipulators": [
        {
          "from": {
            "key_code": "end"
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "change end key to command + right_arrow while presing shift (selection)",
      "manipulators": [
        {
          "from": {
            "key_code": "end",
            "modifiers": {
              "mandatory": [
                "left_shift"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_arrow",
              "modifiers": [
                "left_command",
                "left_shift"
              ]
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

vea también: github gist

    
respondido por el Jason Waters 30.10.2018 - 01:28
-2

También puede reasignar las teclas del teclado, así como personalizar su mouse y trackpad de muchas maneras geniales, con el BetterTouchTool gratuito, disponible en enlace . ¡Una excelente solución para personalizar el funcionamiento de sus dispositivos de entrada!

    
respondido por el Gary Coker 11.06.2015 - 19:09

Lea otras preguntas en las etiquetas