我正在UNIX下用Python编写curses应用程序.我想让用户使用C-Y从Emacs的杀戮圈中拉出来.
麻烦当然是C-Y被我的shell捕获,然后将SIGTSTP发送到我的进程.此外,C-Z还会导致发送SIGTSTP,因此捕获信号意味着C-Y和C-Z是无法区分的(尽管没有这个,我能想到的唯一解决方案也非常笨拙).
我知道我要问的是可能的(如果不是在Python中,则在C中),因为Emacs做到了.如何禁用Shell对从键盘发送的某些控制字符的特殊处理,并使有问题的字符出现在进程的stdin中?
解决方法:
请参见termios模块和termios(3)手册页.