Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 自动检测组合键的转义序列_Shell_Terminal_Kernel_Key Bindings - Fatal编程技术网

Shell 自动检测组合键的转义序列

Shell 自动检测组合键的转义序列,shell,terminal,kernel,key-bindings,Shell,Terminal,Kernel,Key Bindings,是否可以自动检测组合键的转义序列 ,即,不必运行cat,然后手动按ctrl+right或ctrl+left来检测转义序列为^[[5C或^[[5D,是否可以自动执行?在这种情况下,我们可以发送fn(ctrl+left)或fn(ctrl+right)通过管道作为cat的输入,并直接获取输出(第一次,当^[[5C或^[[5D未知时) fn(char a[]='ctrl+right') {..outputs the actual keypress signal for the input string

是否可以自动检测组合键的转义序列

,即,不必运行
cat
,然后手动按
ctrl+right
ctrl+left
来检测转义序列为
^[[5C
^[[5D
,是否可以自动执行?在这种情况下,我们可以发送fn(
ctrl+left
)或fn(
ctrl+right
)通过管道作为cat的输入,并直接获取输出(第一次,当
^[[5C
^[[5D
未知时)

fn(char a[]='ctrl+right') {..outputs the actual keypress signal for the input string a.. ;} | cat; fn=?
这个问题与我的另一个问题完全相反

我这样做是为了自动化在终端中为开发人员设置密钥绑定的过程,这样他们就不必像我们现在所做的那样,为所有可能的组合手动运行()

是否可以自动检测钥匙的转义序列 组合


由于shell(任何用户程序)对终端驱动程序没有洞察力,它不能预测驱动程序将如何处理键组合。还考虑到某些终端,我们可以改变键盘的行为(例如,CF)。.自动检测不是万能的。

我不明白这个问题。
cat
是如何找到按键的转义顺序的。你是在问如何将单词
ctrl+right
转换为合适的按键顺序吗?是的。我可以用什么方法代替手动将ctrl+left按入键盘吗如果可能的话,所有按键的组合都可以吗?这里的要点是什么?文档中的terminfo选项不正是这样做的吗?