Ctrl-Up和Ctrl-Down的ASCII代码

Ctrl-Up和Ctrl-Down的ASCII代码,c,terminal,ascii,C,Terminal,Ascii,我正在用C实现一个小shell,我想使用Ctrl-Up和Ctrl-Down。Ctrl-Up、Ctrl-Down和Ctrl-Shift+C是否有ASCII码?我到处都在寻找它们,但我找不到它们。正如@MateoConLechuga所提到的,你所寻找的根本不存在。当您按下Ctrl-Up时,实际发生的情况是终端发送一个以ESC字符开头的命令。例如,在我的终端上,Ctrl-Up发送ESC[1;5A 您需要的是使用诸如和/或库之类的东西,以与终端无关的方式处理诸如终端输入之类的事情 对你来说不幸的是,这可

我正在用C实现一个小shell,我想使用
Ctrl-Up
Ctrl-Down
Ctrl-Up
Ctrl-Down
Ctrl-Shift+C
是否有ASCII码?我到处都在寻找它们,但我找不到它们。

正如@MateoConLechuga所提到的,你所寻找的根本不存在。当您按下
Ctrl-Up
时,实际发生的情况是终端发送一个以
ESC
字符开头的命令。例如,在我的终端上,
Ctrl-Up
发送
ESC[1;5A

您需要的是使用诸如和/或库之类的东西,以与终端无关的方式处理诸如终端输入之类的事情


对你来说不幸的是,这可能是你所希望的更多的工作shell是不平凡的。

正如@MateoConLechuga所提到的,您所寻找的根本不存在。当您按下
Ctrl-Up
时,实际发生的情况是终端发送一个以
ESC
字符开头的字符。例如,在我的终端上,
Ctrl-Up
发送
ESC[1;5A

您需要的是使用诸如和/或库之类的东西,以与终端无关的方式处理诸如终端输入之类的事情


不幸的是,这可能是您希望完成的更多工作。编写一个“小”shell并非易事。

通过“C-Up”等,您的意思是“Ctrl-Up”等等?只要看看@EdCottrell Yes
C
,对于
CTRL
这些直接输入没有直接的ASCII码。但是,在扩展的ASCII集中,有
0x5C
0x60
分别对应于左键和右键CTRL。每个按键序列产生一个唯一的“扫描码”。对于
CTRL+up
t十六进制扫描码是
1b 5b 31 3b 35 41
用于
ctrl+down
它是
…42
。您可以编写一个相当简单的处理程序来测试代码,但使用预定义的库会更好。所谓“C-Up”等,您是指“ctrl-Up”等等?只要看看@EdCottrell Yes
C
,对于
CTRL
这些直接输入没有直接的ASCII码。但是,在扩展的ASCII集中,有
0x5C
0x60
分别对应于左键和右键CTRL。每个按键序列产生一个唯一的“扫描码”。对于
CTRL+up
t十六进制扫描码是
1b 5b 31 3b 35 41
用于
ctrl+down
它是
…42
。您可以编写一个相当简单的处理程序来测试代码,但最好使用预定义的库。我使用
termcap
我可以捕获
5D
^[[1;5D
5C
^[[1;5C
CTRL+LEFT
CTRL+RIGHT
,由于某种原因,我无法在我的终端上捕获
CTRL+UP
,因为你的终端根本不支持
CTRL-UP
。你必须对你正在使用的任何终端进行RTFM。我在我的另一个终端上进行了测试,它正在工作,
guake
无法接收你p
Ctrl-up
。我正在使用
termcap
我可以捕获
5D
^[[1;5D
5C
^[[1;5C
CTRL+LEFT
CTRL+RIGHT
,由于某种原因,我无法在我的终端上捕获
CTRL+UP
,因为你的终端根本不支持
CTRL-UP
。你必须对你正在使用的任何终端进行RTFM。我在我的另一个终端上进行了测试,它正在工作,
guake
无法接收你p
Ctrl-up