Leí en otra publicación que puedes escribir CtrlJo CtrlMen lugar de la Returnclave en la terminal, lo cual es genial. Pero lo que quiero poder hacer es cambiar eso a otra combinación, por ejemplo: Ctrlspacebar. Intenté reasignar la F1clave, sin éxito.
es posible?
Respuesta1
Depende de lo que quieras hacer exactamente.
Los terminales tienen dos modos principales, los cuales se pueden ajustar con configuraciones adicionales:
- Modo cocido/canónico. En ese modo, el terminal viene con un editor de línea interno donde los caracteres
^H
(o^?
)^W
,^U
(o@
),^V
(o\
) se pueden usar para editar la línea. No se envía nada a la aplicación que lee desde el dispositivo terminal hasta que^J
se recibe el carácter. - crudomodo. Donde cada carácter está disponible para ser leído en la aplicación que lee el dispositivo terminal tan pronto como se escribe, o después de un retraso o después de que se hayan ingresado tantos, según eltiempoymín.parámetros, pero en cualquier caso, no con ese editor de líneas interno.
En ambos casos, el ^M
carácter (CR) puede traducirse automáticamente a ^J
(LF) (o ignorarse para aquellos terminales que envían tanto CR como LF al presionar Enter).
El primer modo es el modo predeterminado del terminal. El segundo modo es utilizado por aplicaciones como zsh
, bash
o vi
que quieren tomar el control de la edición de líneas.
En el primer modo, no puede cambiar qué carácter se utiliza para aceptar la línea.
Pero es posible que puedas decirle a tu terminal que envíe el ^J
carácter al presionar esta o aquella tecla. Por ejemplo, con xterm
, puede usar el translations
recurso X11 para cambiar la asignación de teclas y decirle que envíe lo que desee al presionar una tecla determinada. Si su terminal no admite la reasignación del teclado, aún puede usar GNU screen
para hacer la traducción por usted. Por ejemplo, si tu terminal envía la ^[OP
secuencia de caracteres al pulsar F1, puedes añadir
bindkey \033OP "\012"
a tu ~/screenrc
para decirle que envíe LF cuando presionesF1
Para el segundo caso, que es donde las aplicaciones toman el control de la entrada, aún puede usar el mismo enfoque que el anterior, pero también puede configurar cada aplicación individual para que haga esto y aquello cuando presioneF1
Por ejemplo, con zsh
, el carácter LF está vinculado al accept-line
zsh
widget. Podrías hacerlo:
bindkey "^[OA" accept-line
tener que F1vincularse a ese mismo widget.
Tenga en cuenta que Ctrl+Spacenormalmente envía el carácter NUL al que puede referirse como \0
o ^@
.