Ctrl-Up和Ctrl-Down的ASCII代码
我正在用C实现一个小shell,我想使用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 您需要的是使用诸如和/或库之类的东西,以与终端无关的方式处理诸如终端输入之类的事情 对你来说不幸的是,这可
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 YesC
,对于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
无法接收你pCtrl-up
。我正在使用termcap
我可以捕获5D
或^[[1;5D
和5C
或^[[1;5C
即CTRL+LEFT
和CTRL+RIGHT
,由于某种原因,我无法在我的终端上捕获CTRL+UP
,因为你的终端根本不支持CTRL-UP
。你必须对你正在使用的任何终端进行RTFM。我在我的另一个终端上进行了测试,它正在工作,guake
无法接收你pCtrl-up
。