Question

J'écris une application en Python malédictions sous UNIX. Je veux permettre à l'utilisateur d'utiliser C-Y Yank d'un anneau kill a la Emacs.

Le problème est, bien sûr, que C-Y est pris par ma coquille qui envoie ensuite SIGTSTP à mon processus. En outre, C-Z se traduit également par SIGTSTP être envoyé, attrapant le signal signifie que C-Y et C-Z ne se distinguent pas (mais même sans cela, les seules solutions que je peux penser sont extrêmement hackish).

Je sais ce que je demande est possible (en C sinon en Python), depuis Emacs fait. Comment puis-je désactiver un traitement spécial de certains caractères de contrôle envoyés à partir du clavier et ont apparaissent les personnages en question sur le processus du shell stdin?

Était-ce utile?

La solution

Voir le module termios, et la page de manuel termios(3).

Autres conseils

Pour les fonctionnalités de base, utilisez tty . Par exemple, appeler tty.setraw(sys.stdin) mettra le terminal d'entrée standard en mode brut.

Pour le cas plus général, Python est livré avec un termios bibliothèque , mais vous probablement besoin d'une certaine expérience avec termios de savoir comment l'utiliser.

En variante, un moyen pas cher est de bombarder à stty, qui est une interface de ligne de commande à termios.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top