Terminal 诅咒与回车和Ctrl+;输入和其他具有重叠转义序列的按键笔划?
据我所知,在Terminal 诅咒与回车和Ctrl+;输入和其他具有重叠转义序列的按键笔划?,terminal,curses,ansi-escape,Terminal,Curses,Ansi Escape,据我所知,在Konsole中CTRL+ENTER和ENTER看起来都像运行应用程序的stdin中的byte13。但是当我运行显然使用ncurseslib的mc时,按CTRL+ENTER将文件名插入命令行,而ENTER打开文件。它是如何实施的?我试图查找源代码,但它们对我来说完全不可读。mc(midnight commander)不使用ncurses进行输入,但可以将其用于输出。本质上,它是在寻找特定的字符序列 mc很少使用terminfo数据库,基本上只用于检查xterm鼠标和备用屏幕功能 原则
Konsole
中CTRL+ENTER
和ENTER
看起来都像运行应用程序的stdin
中的byte13
。但是当我运行显然使用ncurses
lib的mc
时,按CTRL+ENTER
将文件名插入命令行,而ENTER
打开文件。它是如何实施的?我试图查找源代码,但它们对我来说完全不可读。mc
(midnight commander)不使用ncurses进行输入,但可以将其用于输出。本质上,它是在寻找特定的字符序列
mc
很少使用terminfo数据库,基本上只用于检查xterm鼠标和备用屏幕功能
原则上,它可以从ncurses terminfo数据库中读取用户定义的功能(例如,请参见),但它不能
由于您正在查看源代码,请参见lib/tty/key.c
中的mc
源代码,其中包含mc
用作一组预定义键的表。例如,当mc
被配置为使用俚语时,这样做“有效”,尽管它有一个缺点,即它是硬编码的,并且可能与您的终端不匹配
然而,正如我所说,
mc
做自己的输入。在key.c
的下一步,您可能会在get_modifier()
ifdef'd中看到一个区块,其中包含HAVE_TEXTMODE_X11_SUPPORT
。在这里面是一个调用,它最终会转到,mc
使用它来查找修改键的当前状态-如果它恰好在X显示中运行,并且该功能已启用。您可能已经看到了。可能是重复的?不完全是-我将尝试回答。。。