2008-11-29 9 views
167

Intenté asignarlo desde Preferencias -> Configuración -> Teclado, pero el cuadro combinado "clave" solo tiene "eliminación directa" pero no "eliminar". ¡Mi teclado, por otro lado, solo tiene "eliminar" y no "borrar adelante"!Terminal Mac OS X: Opción de mapa + eliminar para "eliminar palabra hacia atrás"

¿Hay alguna otra forma de hacerlo, excepto por las preferencias?

+0

Por "retroceder palabra borrar", ¿te refieres a la tecla de retroceso? No estoy al tanto de ningún teclado reciente de Apple que tenga una tecla de borrar. –

+0

Con "borrar palabra hacia atrás" quiero decir exactamente eso: eliminar la palabra completa comenzando desde el cursor hacia atrás. :) La última Macbook tiene una clave etiquetada como "eliminar", pero actúa como retroceso. – ibz

+0

estoy enfrentando el mismo problema. el teclado tiene una eliminación hacia atrás pero no se puede usar como vinculante en Terminal.app. – knoopx

Respuesta

294

En Terminal> Preferencias> Perfiles> Teclado, puede marcar "Usar la tecla de opción como meta clave". Muchas aplicaciones (incluidos bash y tcsh) tratan a Meta-Delete como "palabra eliminada hacia atrás".

+1

Ejecutando en OSX Lion y no aparece la opción 'Utilizar la tecla de opción como meta clave'. –

+25

Está en Preferencias de terminal> configuración> teclado, justo en la parte inferior. – Jon

+3

¿Por qué esto no es predeterminado? –

2

Es posible que también desee probar iTerm, que proporciona un control más preciso de las combinaciones de teclas.

19

Por defecto, el metabarranque hace un tirón de palabra hacia atrás en la mayoría de las conchas. Si presiona "escape" y luego presiona la tecla "retroceso", eso funciona prácticamente en todas partes.

+2

Fantástico, que no requiere configuración adicional. Noto que ' b' y' f' también funcionan para retroceder o avanzar una palabra. – joeytwiddle

+1

Me gusta + FLECHA más. ESC no permite clics continuos en bo f. –

+0

He estado usando + FLECHA para desplazarme, pero me parece que no hay forma de eliminar de forma similar. El enfoque CTRL + W mencionado anteriormente no se detiene en los caracteres que no son palabras de la misma manera que + FLECHA, por lo que elimina todo hasta el espacio en blanco. Cualquier forma de eliminar utilizando una detección de límite similar como + ARROW sería apreciada –

57

La terminal de OS X ejecuta bash, que incluye soporte de lectura. Siga los consejos de Glomek y decirle a la terminal para utilizar la opción como meta tecla (o bien utilizar Esc) y luego tienes un montón de opciones útiles: Ctrl + w borra la palabra anterior (como lo hace Meta + borrar como se ha mencionado), pero también se puede utilizar Meta + f y Meta + b para caminar hacia adelante y hacia atrás a través de palabras, Ctrl + un y Ctrl + e al principio y al final de la línea, Ctrl + k eliminar (matar) del cursor al final de la línea, y mucho más.

Consulte http://www.bigsmoke.us/readline/shortcuts para obtener una tabla de referencia pequeña y atractiva.

+1

¿Cómo es esto "práctico"? El resto del sistema usa 'delete' con calificadores para eliminar palabras. – idrougge

+0

¿Es posible tener "eliminar línea" también? – wenbert

11

En el perfil de su Terminal, puede vincular ⌥⌫ (opción + eliminar) a ^W (control + W), por lo que funciona de manera similar a otras aplicaciones.

Terminal Profile Keyboard settings

+0

stty debe tener^w asignado a werase (comportamiento predeterminado) para que esto funcione. Use stty -a en la línea de comandos para ver cómo se establecen las asignaciones. – natersoz

10

⌃W (control + W) no es lo mismo que la meta + Supr (ESC + borrar si usted no tiene la opción de uso como tecla meta marcada) meta + borrar tratará / _ como la palabra delimitador donde ^W considerará el espacio como delimitador.

p. Ej. con la tecla ESC + Bakcspace en (cursor al final)

rm /dira/dirb/file1 

da

rm /dira/dirb/ 

mientras^W en el mismo dará

rm 

lo tanto, es mejor utilizar \ 033 \ 177 en lugar de^W cuando se define la modificación del perfil del terminal. De esa manera realmente está mapeando ⌥⌫ a lo que esc⌫ está haciendo y sigue teniendo^W para borrar palabras en función del delimitador de espacio.

Me encantaría poder publicar una imagen sobre cómo hacer esto, pero como novatos no puedo.

consulte el comentario de bouke para ver cómo modificar el perfil del terminal.

+1

Este debe ser aceptado. ¡Gracias! – Victor

30

Eliminar una palabra que retrocede:

Ctr-w.

+0

después de leer esto, descubrí que "borrar palabra reenviar" es ctrl + k (por prueba y error). ahora me pregunto por qué hay tan poca documentación sobre todo esto. –

+3

Ctr-k elimina todo al frente, no solo una palabra, ¿no? – Shai

+0

eso es correcto. –

Cuestiones relacionadas