Pregunta

Bash emplea readline, y readline puede eliminar la palabra a la derecha del cursor con "kill-word".

El problema está en que reconoce la pulsación de tecla de control de borrado. Cuando les presiono en bash "5 ~", se emite en la pantalla. I podría solo se unen para esto, pero significaría que un día tengo que escribir "5 ~", y se elimina una palabra a la derecha en su lugar! Así que me gustaría mucho más descubrir la secuencia de control correcta.

He buscado en Google, y bastantes recursos discutir la tecla "suprimir", pero ninguno que he encontrado discutir "control-delete". He experimentado con muchas variaciones, pero nada funciona.

Lo peor es que las horas que he pasado en esta, la rutina sin sentido tedioso, cuando en realidad debería ser un no-problema.

EDIT: Es a través de X, por lo que tal vez hay una solución con xev y xmodmap

¿Fue útil?

Solución

En mi máquina, presionando Ctrl-V, Ctrl-Supr Muestra esto:

^[[3;5~

El ^[ carácter de escape se pueden sustituir por \ e, por lo que puede utilizar unen así para bash (en su ~/.bashrc por ejemplo):

bind '"\e[3;5~":kill-word'

O, se puede añadir lo siguiente a su ~/.inputrc modo Ctrl-Supr mata-palabra en cualquier programa que utiliza readline:

"\e[3;5~": kill-word

Esto sólo enlazará la tecla Ctrl-Supr, usted no tiene que preocuparse de lo que sucederá si necesita escribir ~ 5.

Otros consejos

Lo que se ve no es toda la verdad. Es probablemente <ESC>5~ o algo por el estilo. Trate de Ctrl-V Ctrl-Supr. El Ctrl-V significa "no interpretar la siguiente cosa".

Así vinculante <=> que debe ser bastante segura.

Alt + D borra una palabra a la derecha del cursor Ctrl + W borra una palabra a la izquierda del cursor (Ambos se basan en Emacs, creo)

Si escribe ^ Q ^ V (que es Control-Q seguido de Control-V, la liberación de la tecla de control entre ellos está muy bien), y luego presione Control + Suprimir, se puede conseguir la salida que usted ha mencionado? Yo sólo lo probé, y al menos el uso de masilla no consigo una respuesta en absoluto. Tal vez el behvior es diferente en una consola real de Linux, sin embargo.

Para otras teclas, readline imprime una secuencia más larga, a menudo incluyendo un carácter especial "introducción de secuencia de comandos", que es difícil de escribir por error. Probarlo y ver si le da una secuencia más larga con la Q ^ comando ^ V (que es, por cierto, llamada quoted-insert).

Por ejemplo, si presiono ^ Q ^ V y a continuación, eliminar (sin control mantiene presionado), grabados readline ^[[3~. Esto me dice que puedo unir cosas a la tecla Supr diciendo \e[[3~. Parece probable que highely el carácter CSI está presente para usted, pero usted no está viendo que ya no está pidiendo readline citar la entrada correctamente.

Ctrl-W elimina palabras.

Ctrl-u borra líneas.

Se basan en Emacs (M-W y M-u).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top