Entonces, estaba jugando Zork 1 y fui a copiar un texto para mostrarle a un amigo mío, pero accidentalmente olvidé mantener presionada la tecla Mayús al presionar CTRL+ C. Esto detuvo el comando y perdí mis datos de Zork ...
¿Hay algún tipo de consejo "útil" que pueda usar para evitar detener el comando al presionar las teclas CTRL+ C?
Tenga en cuenta que Zork se ejecuta dentro de la terminal. Es un juego basado en terminales en el que das comandos para realizar diferentes acciones.
Respuestas:
La combinación de teclas Ctrl+ Cenvía el carácter
^C
(valor de byte 3). Esto hace que el terminal envíe la señal SIGINT al programa que se ejecuta en primer plano¹. La acción convencional para esta señal es interrumpir el comando actual: los programas diseñados para procesar comandos sucesivos vuelven a su indicador de nivel superior, mientras que los programas diseñados como un comando por lotes único o una salida de interacción continua. Evidentemente, el programa que está utilizando fue diseñado de acuerdo con el segundo modelo.Esta clave de envío de señal es una característica de la interfaz de terminal general en el núcleo, compartida por todos los emuladores de terminal y terminales físicos reales. Puede configurar qué tecla envía esta señal, así como otras teclas (especialmente CtrlZenviando SIGSTOP para suspender el programa en primer plano) con el
stty
comando. Para cambiar la tecla de SIGINT a Ctrl+ _(en el terminal actual):Para deshabilitarlo por completo:
Para restablecer todas las configuraciones a las predeterminadas:
La clave no puede ser una combinación de teclas arbitraria, debe ser un solo valor de byte. Los programas
stty
pueden anular la configuración: algunos programas (especialmente los programas de modo de texto de pantalla completa) realizan su propio procesamiento de atajo de teclado.¹ Más precisamente , a todos los procesos en el grupo de procesos en primer plano para los cuales el terminal es el terminal de control .
fuente
CTRL+ Cenvía una señal de interrupción (
SIGINT
que es la señal número 2) al trabajo en primer plano. Puede deshabilitar esto "atrapando" la señal con eltrap '' 2
comando antes de iniciar Zork.Vuelva a habilitar CTRL+ C(descomprimir
SIGINT
) contrap 2
.Consejo : podría agregar algo como esto a su
~/.bashrc
:De esta manera, nunca olvidará deshabilitar y volver a habilitar la señal y es más fácil comenzar el juego simplemente escribiendo
zork
en el terminal.Nota : puede usar el nombre de la señal en lugar del número si es más conveniente para usted, es decir,
trap '' sigint
otrap '' int
. Estoy acostumbrado a usar los números, por ejemplo, enkill -9
y tal.fuente