¿Sabes cuál es el código / secuencia para Command + Delete? (borrar el aviso)
Steven Lu
10
Respondí mi primer comentario en otra parte, básicamente el código hexadecimal 0x15 da Ctrl + U, que borra la línea. Sin embargo, encuentro 0x01 Ctrl + A para interferir con el uso de Tmux. Por lo tanto, pretendo asignarlo a la tecla Inicio (la misma funcionalidad que Fn + Izquierda en un teclado Mac).
Steven Lu
77
La secuencia de escape para Home es [1 ~ y la secuencia de escape para End es [4 ~
Steven Lu
3
Funciona como un encanto, increíble!
Juto
25
El enlace correcto es ⌘← "SEND ESC SEQ" OHpara Inicio y ⌘→ "SEND ESC SEQ" OFpara Fin (esos son mayúsculas y no ceros). Esto simula presionar las teclas Inicio y Fin, y como tal funcionará en bash, vim, etc.
Timothy Zorn
433
Para saltar entre las palabras y el inicio / final de las líneas en iTerm2, elija una de las dos soluciones a continuación.
1. Solución simple (recomendada)
Preferencias abiertas
Haga clic en la pestaña "Perfil"
Seleccione un perfil en la lista de la izquierda (por ejemplo, "Predeterminado") y haga clic en la pestaña "Claves"
Haga clic en la ventana desplegable "Presets" y seleccione "Edición de texto natural"
2. Asignación de teclas manualmente (Avanzado)
Si no desea utilizar el ajuste predeterminado "Edición de texto natural" mencionado anteriormente, puede asignar las teclas que necesita manualmente:
Preferencias abiertas
Haga clic en la pestaña "Llaves"
Haga clic en el [+]icono
Ahora puede agregar los siguientes métodos abreviados de teclado:
Mueve el cursor una palabra hacia la izquierda
Atajo de teclado: ⌥+←
Acción: Enviar código hexadecimal
Código: 0x1b 0x62
Mueve el cursor una palabra hacia la derecha
Combinación de teclado: ⌥+→
Acción: Enviar código hexadecimal
Código: 0x1b 0x66
Mueve el cursor al comienzo de la línea
Combinación de teclado: ⌘+←
Acción: Enviar código hexadecimal
Código: 0x01
Mueve el cursor al final de la línea
Combinación de teclado: ⌘+→
Acción: Enviar código hexadecimal
Código: 0x05
Eliminar palabra
Combinación de teclado: ⌥+←Delete
Acción: Enviar código hexadecimal
Código: 0x1b 0x08
Eliminar linea
Combinación de teclado: ⌘+←Delete
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 olvide eliminar los enlaces anteriores :
Abra la pestaña "Perfiles"
Haga clic en la subpestaña "Teclas"
Eliminar las asignaciones para combinaciones de teclas ⌥+ ←y ⌥+→
Esto funcionó bien para mí en iTerm2 y fue muy fácil de seguir, ¡gracias!
Natetronn
3
Solo aclarando ¿qué hacen los enlaces originales para ⌥ ←? Lo veo Says send Hex Codes: 0x1b 0x1b 0x5b 0x44. Sería bueno saber en caso de que la gente no quisiera eliminar esto.
agosto
55
Saltar al principio y al final de la línea no funcionó para mí usando zsh. El uso de "Código hexadecimal" "0x01" / "0x05", como lo sugiere la respuesta superior, funcionó para mí.
Voltear el
2
Saltar al principio y al final de la línea tampoco funcionó para mí. La mejor respuesta funcionó.
hisabimbola
3
¿ITerm tiene una manera de agruparlos en un preajuste que podamos cargar? Parece molesto escribir manualmente, pero esto funcionó para mí y fue increíble. Gracias a lto!
agosto
259
Veo que ya hay muchas buenas respuestas, pero esto debería proporcionar la funcionalidad más cercana a OSX nativa posible en más que solo su shell. Verifiqué que esto funciona en sesiones ZSH, Bash, nodo, python -i, iex e irb / pry (usando gema rb-readline para readline, pero debería funcionar para todos).
Abra las preferencias de iTerm ⌘+ ,y navegue a la Profilespestaña ( Keysse puede usar la pestaña, pero agregar la combinación de teclas a su perfil le permite guardar su perfil y sincronizarlo en varias computadoras) y keysla subpestaña e ingresar lo siguiente:
Eliminar todos los caracteres que quedan del cursor
⌘+ ←DeleteEnviar códigos hexadecimales:
0x15Más compatible, pero la funcionalidad a veces es eliminar toda la línea en lugar de solo los caracteres a la izquierda del cursor. Yo personalmente uso esto y luego sobrescribo mi tecla de enlace zsh para ^Ueliminar solo las cosas a la izquierda del cursor (ver más abajo).
o
0x18 0x7fMenos compatible, no funciona en el nodo y no funcionará en zsh de forma predeterminada, consulte a continuación para corregir zsh (bash / irb / pry debería estar bien), realiza la funcionalidad deseada cuando funciona.
Eliminar todos los caracteres a la derecha del cursor
0x1b 0x08 Rompe el IEX de Elixir, parece funcionar bien en cualquier otro lugar
o
0x17 Funciona en todas partes, pero no se detiene en los saltos de palabras normales en IRB y en su lugar se eliminará hasta que vea un espacio literal.
Rehacer normalmente no está limitado en bash, zsh o readline, por lo que podemos configurarlo en un código hexadecimal no utilizado que luego podemos arreglar en zsh
⇧+ ⌘+ Zo ⌘+ yEnviar códigos hexadecimales:0x18 0x1f
Ahora cómo arreglar cualquier que no funcione
Para zsh, puede configurar el enlace para los ⌘+ ←Deletey ⇧+ ⌘+ Z/ ⌘+ aún no funcionales
yejecutando:
# 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 rehacer en bash o readline, por lo que si alguien conoce una solución para cualquiera de esos, comente a continuación e intentaré agregarlos.
Para cualquiera que busque la tabla de búsqueda sobre cómo convertir secuencias de teclas a hexadecimales, encuentro esta tabla muy útil.
¡Eso es realmente útil, hace una gran diferencia! Me gustaría señalar que algunas personas pueden confundirse con el $frente de echo(¿solo eliminarlo?). Aparte de eso, es perfecto. Gracias.
edmundo
1
@ Christopher Por lo tanto, parece que la combinación de teclas está allí como debería estar. O cometió un error al agregar los valores hexadecimales o se sobrescribió la combinación de teclas para la palabra hacia atrás. Corre bindkey | grep "\^\[b"y eso te dirá si algo más lo sobrescribe después de que se haya configurado. Solo debería regresar #=> "^[b" backward-word. Si se sobrescribe, tendrá que encontrar dónde se sobrescribe y eliminarlo. Si eso no es posible, puede ejecutarlo echo 'bindkey "^[b" backward-word' >> ~/.zshrc, lo agregará a la última línea de su .zshrc, luego reinicie iTerm y debería funcionar
Travis
2
@Christophe revisa la keyspestaña en las preferencias de iTerm para ver si también está asignando ⌥+ ←a algo. Si es así, retíralo. Puede probar si bestá funcionando correctamente presionando rápidamente la escliberación y luego presionando b. Eso debería saltar una palabra a la izquierda. Alternativamente, puede asignar ⌥+ ←a hexadecimal 0x1b 0x42o0x1b 0x5b 0x31 0x3b 0x35 0x44 . Verifiqué que ambos funcionen para mí. Sin embargo, realmente creo que se ha sobrescrito ⌥+ ←en iTerm, ya sea en su profilekeyspestaña o keyspestaña.
Travis
3
¡Asombroso! Acabo de enterarme de los enlaces Deshacer más Rehacer desde aquí.
ecbrodie
3
Lo hice manualmente y pensé por qué no puedo importar un perfil para hacer esto. Luego creé GabLeRoux / iterm2-macos-dynamic-profile basado en estas instrucciones. Funciona perfectamente, gracias 🍻
GabLeRoux
48
Siga el tutorial que enumeró anteriormente para configurar sus preferencias clave en iterm2 .
Crear una nueva clave de acceso directo
Elija "Enviar secuencia de escape" como acción
Luego, para establecer cmd-left , en el texto debajo de eso:
¡Me gusta esto! Las otras soluciones no me funcionaron. Pasé horas frustrado porque no podía usar ctrl + a y ctrl + e en iterm2. Pero no quería renunciar al pescado por ello. Esto funciona totalmente gracias!
VUELO
Otras soluciones tampoco funcionaron para mí, pero esta sí.
Braham Snyder
42
En iTerm 3.0.12 puede cambiar a Natural Text Editingpreestablecido:
iTerm → Preferencias → Perfiles → Teclas
Advertencia Como es un valor predeterminado, puede anular las teclas que ha enlazado anteriormente. Por lo tanto, es mejor guardar las combinaciones de teclas actuales antes de aplicar un valor predeterminado.
¿Podrías elaborar más tu respuesta? Como en, ¿qué incluye ese preajuste y podría sobrescribir?
Carles Alcolea
Gracias por la respuesta. También es probable que sea una mejor práctica aplicar esto a su propio perfil personalizado de esa manera, no está atormentando los valores predeterminados y puede alternar el perfil como un "modo" de edición de texto natural
Las instrucciones están en el archivo Léame y es mucho más rápido importar esto que agregarlas todas manualmente. Respondí esto según la solicitud de @ gooli porque estaba oculto en un comentario. Espero que disfrutes esto 🍻
¡Volví aquí un año después y estoy muy feliz de encontrar esto!
elifiner
9
Solo para ayudar a cualquiera que esté teniendo el mismo problema pero específicamente usando el shell Zsh con iTerm 2. Resulta que Zsh no lee /etc/inputrccorrectamente , y por lo tanto no comprende las teclas que configura a través de las preferencias!
Para solucionar esto, debe agregar algunas asociaciones de teclas a su .zshrcarchivo, como:
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 a su .zshrcarchivo al agregar enlaces.
Como se explica aquí , puede hacerlo con unos simples pasos:
Por defecto, los saltos de palabras (opción + → o ←) y las eliminaciones de palabras (opción + retroceso) no funcionan. Para habilitarlos, vaya a "iTerm → Preferencias → Perfiles → Teclas → Cargar preajuste ... → Edición de texto natural → Explosiones de Boom! Head"
Para mí, la siguiente combinación funcionó:
| Key Action Esc+ End result |
|-----------------------------------------------------|
| ⌘← Send Escape Sequence a Send ^[ a |
| ⌘→ Send Escape Sequence e Send ^[ e |
Respuestas:
Agregue en iTerm2 las siguientes teclas de acceso directo de perfil
Aquí hay un visual para aquellos que lo necesitan
fuente
⌘← "SEND ESC SEQ" OH
para Inicio y⌘→ "SEND ESC SEQ" OF
para Fin (esos son mayúsculas y no ceros). Esto simula presionar las teclas Inicio y Fin, y como tal funcionará en bash, vim, etc.Para saltar entre las palabras y el inicio / final de las líneas en iTerm2, elija una de las dos soluciones a continuación.
1. Solución simple (recomendada)
2. Asignación de teclas manualmente (Avanzado)
Si no desea utilizar el ajuste predeterminado "Edición de texto natural" mencionado anteriormente, puede asignar las teclas que necesita manualmente:
[+]
iconoAhora puede agregar los siguientes métodos abreviados de teclado:
Mueve el cursor una palabra hacia la izquierda
0x1b 0x62
Mueve el cursor una palabra hacia la derecha
0x1b 0x66
Mueve el cursor al comienzo de la línea
0x01
Mueve el cursor al final de la línea
0x05
Eliminar palabra
0x1b 0x08
Eliminar linea
0x15
Deshacer
0x1f
No olvide eliminar los enlaces anteriores :
fuente
Says send Hex Codes: 0x1b 0x1b 0x5b 0x44
. Sería bueno saber en caso de que la gente no quisiera eliminar esto.Veo que ya hay muchas buenas respuestas, pero esto debería proporcionar la funcionalidad más cercana a OSX nativa posible en más que solo su shell. Verifiqué que esto funciona en sesiones ZSH, Bash, nodo, python -i, iex e irb / pry (usando gema rb-readline para readline, pero debería funcionar para todos).
Abra las preferencias de iTerm ⌘+ ,y navegue a la
Profiles
pestaña (Keys
se puede usar la pestaña, pero agregar la combinación de teclas a su perfil le permite guardar su perfil y sincronizarlo en varias computadoras) ykeys
la subpestaña e ingresar lo siguiente:Eliminar todos los caracteres que quedan del cursor
Eliminar todos los caracteres a la derecha del cursor
Eliminar una palabra a la izquierda del cursor
Eliminar una palabra a la derecha del cursor
Mueve el cursor al frente de la línea
Mueve el cursor al final de la línea
Mueve el cursor una palabra hacia la izquierda
Mueve el cursor una palabra hacia la derecha
Deshacer
Rehacer normalmente no está limitado en bash, zsh o readline, por lo que podemos configurarlo en un código hexadecimal no utilizado que luego podemos arreglar en zsh
Ahora cómo arreglar cualquier que no funcione
Para zsh, puede configurar el enlace para los ⌘+ ←Deletey ⇧+ ⌘+ Z/ ⌘+ aún no funcionales yejecutando:
No puedo encontrar una solución para agregar rehacer en bash o readline, por lo que si alguien conoce una solución para cualquiera de esos, comente a continuación e intentaré agregarlos.
Para cualquiera que busque la tabla de búsqueda sobre cómo convertir secuencias de teclas a hexadecimales, encuentro esta tabla muy útil.
fuente
$
frente deecho
(¿solo eliminarlo?). Aparte de eso, es perfecto. Gracias.bindkey | grep "\^\[b"
y eso te dirá si algo más lo sobrescribe después de que se haya configurado. Solo debería regresar#=> "^[b" backward-word
. Si se sobrescribe, tendrá que encontrar dónde se sobrescribe y eliminarlo. Si eso no es posible, puede ejecutarloecho 'bindkey "^[b" backward-word' >> ~/.zshrc
, lo agregará a la última línea de su.zshrc
, luego reinicie iTerm y debería funcionarkeys
pestaña en las preferencias de iTerm para ver si también está asignando⌥
+←
a algo. Si es así, retíralo. Puede probar sib
está funcionando correctamente presionando rápidamente laesc
liberación y luego presionandob
. Eso debería saltar una palabra a la izquierda. Alternativamente, puede asignar⌥
+←
a hexadecimal0x1b 0x42
o0x1b 0x5b 0x31 0x3b 0x35 0x44
. Verifiqué que ambos funcionen para mí. Sin embargo, realmente creo que se ha sobrescrito⌥
+←
en iTerm, ya sea en suprofile
keys
pestaña okeys
pestaña.Siga el tutorial que enumeró anteriormente para configurar sus preferencias clave en iterm2 .
O
fuente
En iTerm 3.0.12 puede cambiar a
Natural Text Editing
preestablecido:Advertencia Como es un valor predeterminado, puede anular las teclas que ha enlazado anteriormente. Por lo tanto, es mejor guardar las combinaciones de teclas actuales antes de aplicar un valor predeterminado.
fuente
Para una referencia rápida de cualquiera 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 señala que en iTerm2:
fuente
Utilicé la respuesta de Travis y creé un perfil dinámico que puede importar según sus instrucciones.
GabLeRoux / iterm2-macos-dynamic-profile
Las instrucciones están en el archivo Léame y es mucho más rápido importar esto que agregarlas todas manualmente. Respondí esto según la solicitud de @ gooli porque estaba oculto en un comentario. Espero que disfrutes esto 🍻
fuente
Solo para ayudar a cualquiera que esté teniendo el mismo problema pero específicamente usando el shell Zsh con iTerm 2. Resulta que Zsh no lee
/etc/inputrc
correctamente , y por lo tanto no comprende las teclas que configura a través de las preferencias!Para solucionar esto, debe agregar algunas asociaciones de teclas a su
.zshrc
archivo, como: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 a su
.zshrc
archivo al agregar enlaces.fuente
Los viejos enlaces de emacs aún pueden funcionar en iterm2 y en la terminal os x:
Preferencias -> Perfiles -> Teclas (subpestaña en perfiles)
Left/Right option <kbd>⌥</kbd> key acts as +Esc
(similar en terminal os x)Esto debería habilitar alt- fy alt- bpara mover palabras por palabras. (Todavía ctrl- ay ctrl-e siempre trabajar como de costumbre)
Si se establece como
meta
esos enlaces antiguos funcionarán mientras algunos enlaces iterm2 no estén disponibles.fuente
Como se explica aquí , puede hacerlo con unos simples pasos:
fuente
Las únicas cosas que funcionan para moverse al principio y al final de la línea son
⌘← "SEND ESC SEQ" OH
- para ir al principio de la línea⌘→ "SEND ESC SEQ" OF
- para ir al final de la líneafuente
bind -p
mostrará una lista de claves escapadas en su shell, que podría ayudarlo a darle más ideas / términos de búsqueda.fuente
bind -p
solo funciona en shells Bourne (bash, sh) para zsh, csh tcsh, usebindkey
.explicado en https://aaronaddleman.com/articles/hexcodes-and-iterm/
puede usar
xxd -psd
para obtener el código hexadecimal clave.fuente
Para mí, la siguiente combinación funcionó:
| Key Action Esc+ End result | |-----------------------------------------------------| | ⌘← Send Escape Sequence a Send ^[ a | | ⌘→ Send Escape Sequence e Send ^[ e |
fuente