7

几个 地方我看到一些命令来确保终端(?)处于应用程序模式,然后 terminfo 数据库设置/查询键绑定将起作用。

我试图找到这个应用模式是什么,但我没有成功。这是什么应用模式?我认为没有它 Zsh 可以正常运行。我对吗?处理键绑定后是否需要取消设置?某些应用程序(例如基于诅咒的应用程序)不会取消它吗?

这只是一个问题:“什么是应用程序模式或它是如何工作的”。我写其他问题只是为了帮助您理解我的问题。

4

1 回答 1

4

万一有人遇到同样的问题……经过一番研究,我在一个 prezto 的 pull request下找到了我的问题的答案。

可以这样概括:

  1. 终端未指定且非通用。有几种不同的协议来处理移动光标、更改颜色和处理用户组合键输入的扩展。
  2. 有人创建了一个大数据库来抽象不同终端和终端仿真器之间的差异。这个数据库是terminfo。
  3. terminfo 只在应用模式下工作。向终端发出特殊的转义序列,然后它可以更改其模式。在新模式下,它将接受不同的转义序列(terminfo 已知的转义序列)。
  4. 可以检测是否支持应用程序模式,如果不支持则回退到其他方法(zkbd,...)。
  5. zsh 的常用配置设置 zle(zsh 的行编辑器)在接收用户输入之前进入应用程序模式,并在执行任何命令之前退出。然后所有应用程序将继续正常运行。

注意:并非所有常见的 zsh 配置都那么健壮,建议阅读前面提到的 prezto 的拉取请求

我的一些配置记录在我的博客上,也可以在我的 git repo上找到。

于 2014-02-23T06:48:52.190 回答