我正在写UNIX下Python中的诅咒应用。我想使用户能够用C-Y从一个剪切环一拉Emacs的猛拉。

麻烦的是,当然,C-Y由我的壳其接着发送SIGTSTP到我的过程捕获。此外,C-Z还导致SIGTSTP被发送,所以捕捉信号表示C-Y和C-Z是没有区别(尽管即使没有这个问题的唯一解决方案我能想到的是极其hackish的)。

我知道我问的是可能的(在C如果不是在Python),因为Emacs也它。如何禁用shell的从键盘发送的某些控制字符特殊处理和有问题的人物出现在进程的标准输入?

有帮助吗?

解决方案

请参阅所述termios模块和termios(3)手册页。

其他提示

有关的基本功能,使用 tty 。例如,调用tty.setraw(sys.stdin)将会把标准输入的终端到原始模式。

有关更一般的情况,Python提供了一个的termios库,但你可能需要使用termios的一些经验,知道如何使用它。

可替换地,一种廉价的方式是掏出到stty,这是一个命令行界面的termios。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top