终端和猫写的字符

时间:2014-08-12 14:19:36

标签: linux vim terminal

我试图更好地理解这些符号的来源以及它们的含义。如果我跑猫

xxx@xxx-debian:~$ cat
^[[A^[[A

在那种情况下,我正在输入向上箭头。

我认为键入的符号与配置的终端类型有关,哪里可以获得更多关于它的信息? 是否有一个表格,用于指定键入的内容与屏幕上的内容之间的映射?

基本上我想要做的是在键入Ctrl-UP时映射来自tmux的内容,这是 ^ [[A

在我的.vimrc文件中,我该如何专门做到这一点? 无论如何,我的问题更加笼统,你可以理解我对这一切有点困惑。

2 个答案:

答案 0 :(得分:1)

cat此处未写任何字符。在按Enter键之前,它不会获得任何字符,也不会产生任何字符。这是您的终端发送到与其连接的程序的内容。

它们产生的特殊键和字节序列之间的映射特定于每种终端类型并且硬连线到它中。您的计算机上有一个数据库,可以汇总这些信息,以及更多类型的终端。该数据库被称为" terminfo数据库"。您可以在shell中键入man 5 terminfo命令来阅读它。

读取和理解箭头键和其他特殊键的许多程序(如vibash)都会参考此数据库。并非所有程序都这样做(例如cat没有)。有ncurses这样的库封装了所有这些的细节,因此您可以使用高级概念,例如" Up key"而不是解释像^[[A这样的序列。

答案 1 :(得分:0)

这是生成的转义序列

^[ ESC字符和[以及A有助于表示其UP Arrow密钥。

因此,组合^[[A OS了解用户已按下UP Arrow键。