Puede determinar la secuencia de caracteres emitida por una tecla presionando Ctrl- ven la línea de comando, luego presionando la tecla que le interesa. En mi sistema F12, obtengo ^[[24~
. El ^[
representa Esc. Diferentes tipos de terminales o emuladores de terminales pueden emitir diferentes códigos para la misma clave.
En un indicador de Bash, puede ingresar un comando como este para habilitar la macro clave y poder probarla.
bind '"\e[24~":"foobar"'
Ahora, cuando presione F12, obtendrá "foobar" en la línea de comando listo para editarlo más. Si desea que una pulsación de tecla ingrese un comando inmediatamente, puede agregar una nueva línea:
bind '"\e[24~":"pwd\n"'
Ahora, cuando presione F12, verá el directorio actual sin tener que presionarEnter . ¿Qué pasa si ya ha escrito algo en la línea y usa esto que se ejecuta automáticamente? Podría ensuciarse. Sin embargo, puede borrar la línea como parte de su macro:
bind '"\e[24~":"\C-k \C-upwd\n"'
El espacio asegura que el Ctrl - utenga algo que borrar para evitar que suene la campana.
Una vez que haya conseguido que la macro funcione como desea, puede hacerla persistente agregándola a su ~/.inputrc
archivo. No es necesario el bind
comando o el conjunto externo de comillas simples:
"\e[24~":"\C-k \C-upwd\n"
Editar:
También puede crear una combinación de teclas que ejecutará algo sin alterar la línea de comando actual.
bind -x '"\eW":"who"'
Luego, mientras escribe un comando que requiere un nombre de usuario, por ejemplo, y necesita saber los nombres del usuario que inició sesión, puede presionar Alt- Shift- Wy la salida dewho
se mostrará y se volverá a emitir el mensaje. con su comando parcial intacto y el cursor en la misma posición en la línea.
Desafortunadamente, esto no funciona correctamente para claves como las F12que generan más de dos caracteres. En algunos casos, esto se puede solucionar.
El comando ( who
en este caso) podría ser cualquier ejecutable: un programa, script o función.