Pregunta

Estoy escribiendo una aplicación de maldiciones en Python bajo UNIX. Quiero que el usuario pueda utilizar C-Y de dar un tirón de un anillo de corte a la Emacs.

El problema es, por supuesto, que el C-Y es capturado por mi concha que luego envía SIGTSTP a mi proceso. Además, C-Z también resulta en SIGTSTP de ser enviado, por lo que la captura de la señal significa que C-Y y C-Z no son distinguibles (aunque incluso sin esto, las únicas soluciones que puedo pensar son extremadamente hacker).

Yo sé lo que estoy pidiendo es posible (en C, si no en Python), ya que Emacs lo hace. ¿Cómo puedo desactivar un manejo especial de la concha de ciertos caracteres de control enviados desde el teclado y que los personajes en cuestión aparecen en el proceso de entrada estándar?

¿Fue útil?

Solución

Vea el módulo termios, y la página del manual termios(3).

Otros consejos

Para obtener una funcionalidad básica, utilice tty . Por ejemplo, llamar tty.setraw(sys.stdin) pondrá terminales de entrada estándar en modo sin procesar.

En el caso más general, Python viene con una termios biblioteca , pero probablemente necesitará un poco de experiencia con termios saber cómo usarlo.

Alternativamente, una forma barata es que desembolsar a stty, que es una interfaz de línea de comandos para termios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top