iTerm 2: ¿Cómo configurar atajos de teclado para saltar al principio/final de línea?


Puedo ver que Ctrl+izquierda/derecha salta al principio/final de la línea. Cómo cambiar esto a Cmd+izquierda/flecha derecha ?

Para obtener Alt+izquierda/flecha derecha funcionando correctamente para salto de palabras siga este artículo.

Author: Flip, 2011-06-01

12 answers

Agregue en iTerm2 las siguientes teclas de método abreviado de Perfil

FOR  ACTION         SEND
⌘←  "SEND HEX CODE"      0x01 
⌘→  "SEND HEX CODE"      0x05
⌥←  "SEND ESC SEQ"  b
⌥→  "SEND ESC SEQ"  f

Aquí hay un visual para aquellos que lo necesitan

iTerm añadir clave visual

 538
Author: Matthias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-02 14:48:01

Para saltar entre palabras y principio/fin de líneas en iTerm2 siga estos pasos:

  • iTerm2 -> Preferencias ( + ,)
  • Abra la pestaña "Claves"
  • Agregue las siguientes Teclas de método abreviado Globales

Mover el cursor una palabra a la izquierda

  • Combinación De Teclado: +
  • Acción: Enviar Código Hexadecimal
  • Código: 0x1b 0x62

Mover el cursor una palabra derecha

  • Combinación De Teclado: +
  • Acción: Enviar Código Hexadecimal
  • Código: 0x1b 0x66

Mover el cursor al principio de la línea

  • Combinación De Teclado: +
  • Acción: Enviar Código Hexadecimal
  • Código: 0x01

Mover el cursor al final de la línea

  • Combinación De Teclado: +
  • Acción: Enviar Hex Código
  • Código: 0x05

Suprímase word

  • Combinación De Teclado: + ←Borrar
  • Acción: Enviar Código Hexadecimal
  • Código: 0x1b 0x08

Suprímase la línea

  • Combinación De Teclado: + ←Borrar
  • Acción: Enviar Código Hexadecimal
  • Código: 0x15

Deshacer

  • Combinación de teclado: + z
  • Acción: Enviar Código Hexadecimal
  • Código: 0x1f

No olvides eliminar los enlaces anteriores :

  • Abra la pestaña "Perfiles"
  • Haga clic en la sub-pestaña "Teclas"
  • Quitar las asignaciones para combinaciones de teclas + y +
 272
Author: sqren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-31 05:14:42

Veo que ya hay muchas buenas respuestas, pero esto debería proporcionar la funcionalidad OSX nativa más cercana posible en algo más que su shell. Verifiqué que esto funciona en sesiones ZSH, Bash, node, python-i, iex e irb/pry (usando la gema rb-readline para readline, pero debería funcionar para todas).

Abrir las preferencias de iTerm+, y vaya a la pestaña Profiles (se puede usar la pestaña Keys, pero agregar enlaces de teclas a su perfil le permite guardar su perfil y sincronizarlo con varios equipos) y keys sub-pestaña e ingrese lo siguiente:

Eliminar todos los caracteres a la izquierda del cursor

+←Delete Enviar códigos hexadecimales:

0x15 Más compatible, pero la funcionalidad a veces es eliminar toda la línea en lugar de solo los caracteres a la izquierda del curser. Yo personalmente uso esto y luego sobrescribo mi zsh bindkey for ^U para eliminar solo cosas a la izquierda del cursor (véase más adelante).

o

0x18 0x7f Menos compatible, no funciona en node y no funcionará en zsh por defecto, ver más abajo para arreglar zsh (bash/irb/pry debería estar bien), realiza la funcionalidad deseada cuando funciona.

Eliminar todos los caracteres a la derecha del cursor

+fn+←Borrar o +Borrar→ Enviar Códigos Hexadecimales: 0x0b

Suprímase uno palabra a la izquierda del cursor

+←Delete Enviar códigos hexadecimales:

0x1b 0x08 Roturas en IEX de Elixir, parece funcionar bien en todas partes

o

0x17 Funciona en todas partes, pero no se detiene en los saltos de palabras normales en IRB y en su lugar eliminará hasta que vea un espacio literal.

Eliminar una palabra a la derecha del cursor

+fn←Borrar o +Delete→ Enviar códigos hexadecimales: 0x01b 0x64

Mover el cursor al frente de la línea

+ Enviar Códigos Hexadecimales: 0x01

Mover el cursor al final de la línea

+ Enviar Códigos Hexadecimales: 0x05

Mover el cursor una palabra a la izquierda

+ Enviar Códigos Hexadecimales: 0x1b 0x62

Mover cursor una palabra derecha

+ Enviar Códigos Hexadecimales: 0x1b 0x66

Deshacer

+z Enviar Códigos Hexadecimales: 0x1f

Rehacer normalmente no está enlazado en bash, zsh o readline, por lo que podemos establecerlo en un hexcode no utilizado que luego podemos corregir en zsh

++Z o +y Enviar Códigos Hexadecimales: 0x18 0x1f

Ahora cómo arreglar cualquiera que no funcione

Para zsh, puede configurar el enlace para el aún no funcional +←Borrar y ++Z/+y ejecutando:

# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc

# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc

# reload your .zshrc for changes to take effect
$ source ~/.zshrc

No puedo encontrar una solución para agregar redo en bash o readline, por lo que si alguien conoce una solución para cualquiera de ellos, comente a continuación e intentaré agregarlos.

Para cualquiera que busque la tabla de búsqueda en cómo convertir secuencias clave a hexadecimal, encuentro esta tabla muy útil.

 188
Author: Travis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-15 12:38:00

Siga el tutorial que enumeró anteriormente para configurar sus preferencias de clave en iterm2.

  1. Crear una nueva clave shorcut
  2. Elija "Enviar secuencia de escape" como la acción
  3. Luego, para establecer cmd-left, en el texto de abajo que:
    • Introduce [H para de inicio de la línea
      O
    • Enter [F para fin de línea
 42
Author: Jaime Bellmyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-02 19:12:43

En iTerm 3.0.12 puede cambiar a Natural Text Editing preset:

introduzca la descripción de la imagen aquí

ITerm → Preferencias → Perfiles → Claves

Advertencia Como es un preset, puede anular las teclas que ha enlazado anteriormente. Por lo tanto, es mejor guardar los enlaces de teclas actuales antes de aplicar un preset.

 27
Author: Nik Kov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-20 12:09:26

Para una referencia rápida de cualquier persona que quiera ir al final de la línea o al inicio de la línea en iTerm2, el enlace anterior http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word-in-iterm.html observa que en iTerm2:

  • Ctrl+A , salta al inicio de la línea, mientras que
  • Ctrl+E, salta hasta el final de la línea.
 11
Author: Ioannis Filippidis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-16 20:58:41

Solo para ayudar a cualquiera que esté teniendo el mismo problema pero específicamente usando Zsh shell con iTerm 2. Resulta que Zsh no lee /etc/inputrc correctamente , y por lo tanto no entiende cualquier enlace de teclas que configure a través de las preferencias!

Para solucionar esto, debe agregar algunos enlaces de teclas a su archivo .zshrc, como:

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line

Tenga en cuenta las barras invertidas en el ejemplo anterior antes de la "e", el artículo vinculado no las muestra, así que agréguelas en su archivo .zshrc al agregar vinculante.

 7
Author: Nerdwood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-28 10:42:58

Los antiguos enlaces emacs todavía pueden funcionar en iterm2 y os x terminal:

Preferencias - > Perfiles - > Claves (sub pestaña en perfiles)

  • Set Left/Right option <kbd>⌥</kbd> key acts as +Esc (similar en el terminal os x)

Esto debería permitir a alt-f y alt-b para mover las palabras por las palabras. (Todavía ctrl-un y ctrl-e siempre trabajar como de costumbre)

Si se establece como meta esos enlaces antiguos funcionarán mientras que algunos iterm2 enlaces no disponibles.

 3
Author: halfelf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-22 03:16:11

bind -p mostrará una lista de claves escapadas enlazadas en su shell, que podría ayudarlo a darle más ideas / términos de búsqueda.

 1
Author: Jose Alban,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-19 12:26:38

Como se explica en aquí , puedes hacerlo con unos sencillos pasos:

De forma predeterminada, saltos de palabra (opción + → o←) y supresiones de palabras (opción + retroceso) no funcionan. Para habilitarlos, vaya a " iTerm → Preferencias → Perfiles → Teclas → Preset de carga... → Edición de texto Natural → Boom! Cabeza explota"

 1
Author: Islam.Ibrahim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-15 11:03:55

Explicado en https://aaronaddleman.com/articles/hexcodes-and-iterm /

Puede usar xxd -psd para obtener el código hexadecimal clave.

 1
Author: Zitao Xiong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-08 08:50:04

Para mí, la siguiente combinación funcionó:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |

 0
Author: Halil Özgür,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-22 15:22:59