Estoy tratando de cambiar del uso prolongado de Tcsh a la exploración reciente de Bash.
Me las arreglé para transferir todas mis características favoritas, excepto Ctrl + w, que trata los espacios y las barras como límites de palabras, muy probablemente hacia atrás-kill-word. En Bash, sin embargo, readline elimina todo el camino hasta el primer espacio, eliminando todas las barras entre ellas.
He intentado muchas combinaciones diferentes de \ Cw: backward-kill-word en .inputrc y .bashrc usando bind, pero no puedo hacer que funcione de la manera que quiero.
Curiosamente, a través de Putty de Windows en el trabajo puedo usar Alt + Retroceso, que también dice el manual es el enlace predeterminado, para producir el comportamiento exacto que quiero. Pero en Terminal.app en mis Mac en casa esto no funciona. Lo mismo ocurre con cualquier servidor FreeBSD o Linux en el que esté conectado desde Terminal.app.
Así que recurro al superusuario para obtener ayuda.
cat
. En todos los Unixes,stty
se utiliza para controlar varios parámetros tty, incluidas estas teclas especiales. (Así es como se veía UNIX 7th Editionstty
.)stty
el manual). Además, bash fue originalmente diseñado para el sistema operativo GNU y solo más tarde portado a otros Unixes; Es mucho más fácil mantener las funciones de edición en una sola biblioteca que en varios núcleos muy diferentes.stty
configuración por simplicidad, pero puede ser anulada por la propia configuración de readline (como se describe en la respuesta de Matt Day).Grawity escribió que esto no se puede controlar en el
.inputrc
archivo, pero eso es incorrecto.Si está
set bind-tty-special-chars off
en su.inputrc
, puede personalizar el comportamiento de los caracteres de terminal especiales.Por ejemplo:
fuente
python
.Para el registro, la respuesta que se aplica a iTerm2 es establecer Alt- Backspace(o Opt ⌥- ⌫en Mac) para enviar códigos hexadecimales
0xb1
y0x7f
realizar labackward-kill-word
acción que trata los caracteres no alfanuméricos como delimitadores.Para la distinción, aquí está el comportamiento que estoy describiendo, en el cual la presión Opt ⌥- ⌫una vez cambia esto:
echo "/example/filepath/with_non-alpha.characters@blah:meh
a esto:
echo "/example/filepath/with_non-alpha.characters@blah:
Y las siguientes prensas de Opt ⌥- ⌫:
echo "/example/filepath/with_non-alpha.characters@
echo "/example/filepath/with_non-alpha.
echo "/example/filepath/with_non-
echo "/example/filepath/with_
echo "/example/filepath/
Así es como se ve la configuración en iTerm2:
Entonces, específico de Putty y Terminal, la respuesta de Grawity es excelente. Pero después de pasar una cantidad de tiempo vergonzosa buscando cómo aplicar la configuración en iTerm2, esta publicación de superusuario parece aparecer con mayor frecuencia, por lo que parecía responsable de proporcionar la información relevante que se aplica a iTerm2 como una respuesta adjunta a esta pregunta.
fuente