加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim – 查找组合键的十六进制代码序列

发布时间:2020-12-15 17:03:12 所属栏目:安全 来源:网络整理
导读:我试图了解为键盘组合键生成十六进制代码序列的方法.所以我可以使用它们通过iTerm2的“发送十六进制代码”功能将特定密钥发送到运行在iTerm2内部的tmux内的 vim会话.然而,这变得非常混乱. 我从这篇文章开始:iTerm2 keymaps for tmux 因此,作为常量和起点,我
我试图了解为键盘组合键生成十六进制代码序列的方法.所以我可以使用它们通过iTerm2的“发送十六进制代码”功能将特定密钥发送到运行在iTerm2内部的tmux内的 vim会话.然而,这变得非常混乱.

我从这篇文章开始:iTerm2 keymaps for tmux

因此,作为常量和起点,我知道CTRL-b可以表示为0x02的十六进制代码.

我测试了它,并且它有效,当我将它映射到iTerm2中的任何随机键时,我可以看到它作为CTRL-b发送到tmux

但是我怎么知道其他组合键的十六进制代码,例如SHIFT-F10的十六进制代码是什么?还是CTRL-F5?还是CTRL-m-Space?

我在这里问了一个与这个问题有关的问题:
Key escape sequences not working for tmux

您可以使用命令行工具xxd.它从STDIN读取并在原始输入旁边输出十六进制转储,如下所示:
$echo -n "hello world" | xxd
0000000: 6865 6c6c 6f20 776f 726c 64              hello world

另一个方便的技巧是,如果要直接输入控制字符,通常可以通过Ctrl-V(^ V)为键设置前缀来切换到临时“原始模式”.例如,要获取表示Ctrl-b的十六进制代码,请运行xxd,按Ctrl-v,然后按Ctrl-b,然后按Enter(以便在视觉上将输入与xxd的输出分开),然后按Ctrl-d发送EOF:

$xxd
^B
0000000: 020a                                     ..

输出可以这样解释:

>第一列(0000000)是偏移量
>然后我们看到20,代表^ B.
>接下来是0a(LF)
>在最后一列中,我们看到与十六进制输出相对应的原始输入(在这种情况下,点表示不可见的字符)

在Linux上测试F5和Shift-F5,在tmux中:

$xxd
^[[15~
^[[25~
0000000: 1b5b 3135 7e0a 1b5b 3235 7e0a            .[15~..[25~.

所以要解释F5 – 我们看到ESC(0x1b),后面跟着列出的字符的十六进制表示,以LF(0x0a)结束:

> 5b,或[符号
> 31,或数字1
> 35,或数字5
> 7e,或?符号

Shift-F5可以类似地解释,除了ANSI序列使用25而不是15.

您也可以使用tput命令,请参阅以下答案:https://unix.stackexchange.com/a/53589

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读