Terminal de OS X: "borrar hacia atrás la palabra" solo funciona con C-M-h

5

Seguimiento en Mac OS X Terminal: opción de mapa + eliminar a "eliminar hacia atrás la palabra" .

La opción Use option key as meta key está marcada, pero la palabra eliminada al revés funciona solo con ^ - - H (es decir, uno tiene que también mantener presionada la tecla ^ o Control )! ¿Cómo se puede eliminar una palabra hacia atrás con - H solamente? Esta molestia ocurre solo en Terminal.app . .. y curiosamente también en iTerm.app !

También tengo esto en ~/Library/KeyBindings/DefaultKeyBinding.dict , para poder disfrutar de Emacs en todo momento:

{"~h" = "deleteWordBackward:";}

Entorno: OS X 10.8.2 (12C54), Terminal 2.3 (309), iTerm

    
pregunta Blaz 11.09.2013 - 13:31

2 respuestas

3

La configuración en DefaultKeyBinding.dict no se aplica a las vistas de shell en Terminal o iTerm 2.

Puedes hacer que M-h elimine una palabra al revés agregando esto a ~/.inputrc

"\eh": backward-kill-word

M-h está vinculado a mark-paragraph por defecto en Emacs, sin embargo.

Si otros buscan la forma de hacer ⌥⌫ eliminar una palabra al revés, simplemente habilite la opción de usar como una tecla meta:

  • En la Terminal, verifique Configuración > (tu perfil) > Teclado > Utilice la opción como clave meta
  • En iTerm 2, configure las teclas de opción para que actúen como "+ Esc" en Perfiles > (tu perfil) > Llaves

Si otros buscan cómo hacer que ⌥⌦ eliminar una palabra adelante, puedes hacer que inserte \ed :

⌥⌦ inserta \e( por defecto en Terminal y \e[3~ en iTerm 2, por lo que también podría agregar "\e(": kill-word o "\e[3~": kill-word a ~/.inputrc .

    
respondido por el user495470 12.09.2013 - 17:23
3

Casi todas las terminales utilizan las teclas de acceso rápido de emacs para manipular el texto (consulte métodos abreviados de teclado de línea de lectura ), y en emacs, usa backward-kill-word (meta-delete) para eliminar la palabra anterior.

Y, en emacs, meta-<KEY> (composición clave) es igual a escape <KEY> (acorde clave), por lo que en este caso, puede usar ESCAPE DEL para eliminar la palabra anterior.

    
respondido por el dvorak4tzx 23.07.2017 - 16:06

Lea otras preguntas en las etiquetas