Frage

Ich schreibe eine Flursanwendung in Python unter Unix. Ich möchte es dem Benutzer ermöglichen, Cy zu verwenden, um von einem Killring a la emacs zu yank.

Das Problem ist natürlich, dass Cy von meiner Hülle gefangen wird, die dann Sigtstp zu meinem Prozess sendet. Darüber hinaus führt CZ auch dazu, dass SIGTSTP gesendet wird, sodass das Signal das Signal fängt, dass Cy und CZ nicht unterscheidbar sind (obwohl dies auch ohne diese Lösungen, die ich mir vorstellen kann, extrem hackisch sind).

Ich weiß, was ich frage, ist möglich (in C, wenn nicht in Python), da EMACs es tut. Wie kann ich die spezielle Handhabung bestimmter Steuerzeichen der Shell deaktivieren, die von der Tastatur gesendet wurden, und die fraglichen Zeichen im Prozess "Stdin" erscheinen lassen?

War es hilfreich?

Lösung

Siehe das termios Modul und die termios(3) Mann Seite.

Andere Tipps

Für die grundlegende Funktionalität verwenden Sie tty. Zum Beispiel anrufen tty.setraw(sys.stdin) Stellt das Terminal des Standardeingangs in den Rohmodus ein.

Für den allgemeineren Fall kommt Python mit a Termios Bibliothek, Aber Sie brauchen wahrscheinlich einige Erfahrungen mit Termios, um zu wissen, wie man es benutzt.

Alternativ ist ein billiger Weg, sich auszuschütteln stty, was eine Befehlszeilenschnittstelle zu Termios ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top