- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 osX 上的终端应用程序连接到 ubuntu(我认为是 12.04)。我的终端默认设置为 xerm-256。在这种模式下,终端在按下 F2 时发送\033OQ 序列。但是,Shift-F2 或 Control-F2 没有映射。也没有为 Shift-Left、Shift-Right、Control-Left、Control-Right 等设置序列。我需要其中一些键来不时地在各种程序中操作功能。以 byobu 为例。 Shift-F2 和 Control-F2 用于垂直和水平分割屏幕。在 tmux 中,箭头键与 shift 和 control 一起用于调整 Pane 大小。
我的问题是我不知道终端应该发送什么序列。我如何找出这些序列应该是什么?我知道我可以按 Control-v 然后按一个键来获取正在接收的代码,但这不是我需要的。我不需要查看正在发送的序列。我需要知道我需要发送什么序列。
例如我的左箭头发送 ^[OD.我的 Control-Left 发送 ^[[5D]。但是我的上下键没有区别。我向下发送 ^[OB 和 Control-down 也发送 ^[OB。我的向上键也有同样的问题。有没有shift都是一样的。
某处是否有包含所有键和代码的列表,特别是带有 shift、control、alt/option 等修饰符的列表?
我如何找出预期的顺序以便发送所需的内容?
最佳答案
由于您正在宣传您正在使用 xterm(通过您的 TERM 值),您很可能希望安排发送 xterm 将发送的序列这些键。 ctlseqs xterm 的文档在 PC-Style Function Keys 的底部描述了这些特定的修改后的键序列。部分:
… xterm recognizes function key modifiers which are parameters appended before the final character of the control sequence.
2 Shift
3 Alt
4 Shift + Alt
5 Control
6 Control + Shift
⋮
F5 发送 ^[[15~
,所以 Shift-F5 应该发送 ^[ [15;2~
(即在最后一个字符前添加;2
)
箭头键和前四个功能键有点不同。他们经常使用基于 SS3 的序列(以 ^[O
开头);这些将需要更改为基于 CSI 的等效项(以 ^[[
开头),因为 SS3 序列不能有参数。此外,键的正常序列通常没有数字参数,因此还添加了一个占位符 (?) 1
参数:
Up 发送 ^[[A
或 ^[OA
,所以 Shift+Up 应发送 ^[[1;2A
(即切换到 CSI,并在最后一个字符前添加 1;2
)
F1 发送 ^[OP
,所以 Shift+F1 应该发送 ^[[1 ;2P
(即切换到CSI,在最后一个字符前添加1;2
)
您可能还想查看各种终端仿真器的源代码,了解它们的作用。例如,tmux 的相关位在其 xterm-keys.c
file 中.
由于您的终端仿真器尚未发送您想要支持的所有序列,因此您必须对其进行配置。 OS X 附带的内置终端仿真器 Terminal 预配置了一些键,但您可能必须自己添加其中的大部分键。您可以调用 Terminal> Preferences... 菜单项,选择顶级 Settings 选项卡,选择适当的配置文件,并切换到其键盘标签。从那里您可以添加和删除键定义。例如,您可以使用 shift
定义 F2
以 send string to shell:
(sic) 然后键入 ESC按[1;2Q
进入字符串文本框(ESC会显示为\033
,没问题)。
注意:更改Option-Right 和Option-Left 的定义可能会影响某些程序(例如 shell 和 Emacs)使用这些击键。默认配置发送 ESC-f 和 ESC-b,它们是 Emacs 风格的键击,用于许多程序默认理解的后向词和前向词。这种配置对我来说似乎是倒退的; shell(和其他程序)应该配置为识别正确的修改后的箭头键序列。
您可能还想尝试不同的终端模拟器。 iTerm 2内置了对大多数这些修改后的键的支持(可能不是 Control+Fn 变体),因此手动配置会更少。
此外,请注意 OS X 为某些 Control-Fx 组合定义了一些系统范围的快捷方式(请参阅系统偏好设置, 键盘、键盘快捷键、键盘和文本输入)。您必须禁用其中一些快捷方式,以确保Terminal 或 iTerm 有机会“看到”您想要的组合键。
关于bash - 我如何找出我的终端需要发送的转义序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19062315/
我正在阅读 Python 文档以真正深入了解 Python 语言,并遇到了 filter 和 map 函数。我以前使用过过滤器,但从未使用过映射,尽管我在 SO 上的各种 Python 问题中都见过这
当我尝试打印 BST 的级别顺序时,这个问题提示了我。 这是一个 Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8 In_order Sequence : 1, 2
我的代码在 main(序列测试;)的第一行出现错误,指出它是对 sequence::sequence() 的 undefined reference 。我无法更改 main 中的代码。有谁知道我该如何
这可能很简单,但我在通常的 latex 指南中找不到任何相关内容。在这句话中: {\em hello\/} “\/”的目的是什么? 最佳答案 这就是所谓的斜体校正。其目的是确保斜体文本后有适当的间距。
当我从 Postgresql 表中删除所有记录,然后尝试重置序列以在插入时开始一个编号为 1 的新记录时,我得到不同的结果: SELECT setval('tblname_id_seq', (SELE
在版本10.0.3中,MariaDB引入了一种称为序列的存储引擎。 其ad hoc为操作生成整数序列,然后终止。 该序列包含正整数,以降序或升序排列,并使用起始,结束和递增值。 它不允许在多个查询中
如何在 Groovy 中获取给定数字的序列,例如: def number = 169 // need a method in groovy to find the consecutive number
基本上,如果这是 .NET,它看起来像这样: ISomething { string A { get; } int B { get; } } var somethings = new List
说以下代码部分(同一块): A <= 1 A <= 2 变量 A 总是被赋值为 2 吗?还是会出现竞争条件并分配 1 或 2? 我对非阻塞赋值的理解是,由硬件在 future 分配变量 A,因此它可能
在运行 WiX 设置时,我正在寻找操作列表及其顺序。不知何故,官方网站似乎没有提供任何信息。 基本问题是我想正确安排我的自定义操作。通常我需要使用 regsvr32.exe 注册一个 DLL,而这只能
F#初学者在这里 我想创建一个类型,它是具有至少一个元素的另一种具体类型(事件)的序列。任何其他元素都可以在以后随时添加。通常在 C# 中,我会创建一个具有私有(private) List 和公共(p
作为构建过程和不断发展的数据库的一部分,我试图创建一个脚本,该脚本将删除用户的所有表和序列。我不想重新创建用户,因为这将需要比所允许的更多的权限。 我的脚本创建了一个过程来删除表/序列,执行该过程,然
我想恢复两个向量的第一个日期和相同向量的第二个日期之间的日期序列,.... 这是一个例子: dates1 = as.Date(c('2015-10-01', '2015-03-27', '2015-0
这个问题已经有答案了: sql ORDER BY multiple values in specific order? (12 个回答) 已关闭 9 年前。 我有一个 sql 语句,我想要ORDER
我想恢复两个向量的第一个日期和相同向量的第二个日期之间的日期序列,.... 这是一个例子: dates1 = as.Date(c('2015-10-01', '2015-03-27', '2015-0
在用java编写代码时,我需要用“],[”分割字符串。下面是我的代码。 try (BufferedReader reader = new BufferedReader(new InputStreamR
这个问题已经有答案了: Project Euler Question 14 (Collatz Problem) (8 个回答) 已关闭 9 年前。 我正在尝试查找数字的 Collatz 序列。以下
我有一个例程函数process_letter_location(const char& c, string &word)。 在我的 main 中,我声明了一系列字符串变量,如下所示: string s
我需要找到最长的多米诺骨牌链,给定一组 12 个随机挑选的多米诺骨牌。我已经递归地生成了多米诺骨牌的所有可能性(使用 0 到 12 的面值有 91 种可能性)。多米诺骨牌由一 block “砖 blo
我有这个数据结构 Seq,它继承了类 vector 但有一些额外的功能。使用这个数据结构 Seq 我有这个预定义的数据结构: typedef Seq > MxInt2d; 我现在想要一个包含多个 Mx
我是一名优秀的程序员,十分优秀!