¿Enlazar Ctrl \ in intrtrc?

He estado dando vueltas con esto y no puedo hacer que funcione. Usar Ctrl + V en el terminal emite correctamente ^\ para esta combinación, por lo que debe ser reconocible.

Como tengo Ctrl + \ obligado a suspender-frame en emacs, me gustaría poder volver rápidamente al primer plano con otra presión de Ctrl + \ .

Creo que esta es la única combinación viable:

 "\C-\\": "fg\n" 

Si presiono Enter luego de Ctrl + V para esta combinación, obtengo el siguiente resultado, que podría ser útil:

 bash: $'\034': command not found 

Ctrl + \ es uno de los caracteres de control que hace que el terminal envíe una señal (SIGQUIT), como Ctrl + C (SIGINT) y Ctrl + Z (SIGTSTP). Puede ejecutar stty -a para mostrar qué caracteres tienen un significado especial para la terminal; vea Borrar / borrar una contraseña invisible mal escrita en un shell / terminal en Linux para más detalles. El resultado es que cuando presiona Ctrl + \ , bash no ve un carácter en su input estándar, ve una señal, y eso no pasa por los mecanismos de vinculación de teclas.

Puede desactivar el significado para el personaje en el terminal con el command stty quit undef . Si haces eso, bash verá al personaje como input y tu enlace de keys tendrá efecto.

Para organizar Ctrl + \ para que sea un enlace bash pero tiene su enlace de terminal normal al ejecutar un command, cambie la configuration del terminal antes y después de ejecutar un command.

 preexec () { stty quit '^\' } precmd () { stty quit undef } preexec_invoke_exec () { [ -n "$COMP_LINE" ] && return # do nothing if completing [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`; preexec "$this_command" } trap 'preexec_invoke_exec' DEBUG PROMPT_COMMAND='precmd' 

En lugar de hacer que la key escriba fg y una nueva línea, vincula la key a un command de shell. No puede hacer eso desde .inputrc , que se aplica a todas las aplicaciones readline, no solo a bash. En su lugar, defina un enlace bash en su .bashrc :

 bind -x '"\C-\\": "fg"'