首页 > 解决方案 > 用鼠标在shell中获取选定的字符

问题描述

我很好奇如何编写不同的代码。当我开始使用 Termux 时,我遇到了一个家伙:

之后,像 Vim 这样的文本编辑器如何获得您选择编写的字符?

是否可以不使用 C 或 C++ 等低级语言的外部库?

我正在阅读 Nano 的代码,但它使用外部库来做到这一点。

标签: linuxshellconsolemousetermux

解决方案


通常,终端仿真器(继旧硬件终端之后)是输出设备,几乎没有能力查询实际显示的内容。'termios.h' 不会提供很多帮助。一些库(如 curses)提供了对输出的更好控制,但查询屏幕上的内容的能力相对较少。

大多数知道在屏幕上执行操作的代码(例如,vim、emacs)都会跟踪屏幕上显示的内容以及光标位置(或所选区域区域),并使用这两条信息来执行编辑。

一个特例是使用 GUI 框架(GTK、Qt、...)的软件。它们的文本小部件将提供 API 来查询/设置显示的数据、选定的数据等。此 API 是基于存储在应用程序中的数据的副本提供的。


推荐阅读