lynx
浏览器等应用程序以及许多其他应用程序在外壳上htop
接受位置相关的鼠标单击。我知道这是一个命令行界面。那么它如何接受鼠标点击呢?bash
ssh
ssh
答案1
“New Curses”是一个从底层设备的细节中抽象出 TUI 设计的库。您引用的所有软件都使用 ncurses 来呈现其界面。
当您单击终端仿真器(例如 xterm、gnome-term 等)时,终端仿真器会按以下顺序转换单击:ANSI 转义代码。这些序列由 ncurses 库在事件中读取和翻译。
你可以在 Stack Overflow 上找到一个例子:NCurses 中的鼠标移动事件
答案2
这非常简单,在老式串行终端会话中,鼠标实际上并不是将输入发送到交互式 shell 会话的选项。 (我确信早期有一些例外。)
但是,当您运行终端模拟器时里面一个图形桌面会议终端模拟器可以识别鼠标。
在高层发生的事情是,鼠标事件由终端仿真器(xterm
例如)转换为终端序列,并将这些事件发送到您正在运行的应用程序的交互式 shell 会话,htop
等等vim
。在这种情况下,vim
只看到终端序列(就像会产生一系列简单的键盘事件),而不是鼠标事件。