![如何让 shift+箭头键进行选择而不在终端中打印 ABCD](https://linux22.com/image/1026884/%E5%A6%82%E4%BD%95%E8%AE%A9%20shift%2B%E7%AE%AD%E5%A4%B4%E9%94%AE%E8%BF%9B%E8%A1%8C%E9%80%89%E6%8B%A9%E8%80%8C%E4%B8%8D%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%89%93%E5%8D%B0%20ABCD.png)
我在 Wayland 上使用 Ubuntu 22.04。我在执行一项任务时不小心按下了一些键。现在Shift + arrow按键无法进行选择,只是根据我按下的箭头键打印 ABCD。
我如何将其恢复为通过按键选择文本的默认功能Shift + arrow?
答案1
Shift您看到的+键行为Arrow对于终端仿真器来说是正常的,无论是在 Wayland 还是 Xorg 下。因此您可能没有更改任何内容。不使用鼠标在终端仿真器中选择文本实际上是不可能的。有关从终端剪切/粘贴的控制台原生方法,请参阅这个问题。
答案2
为了充分理解当前事态背后的原因,您需要了解这一点:
终端仿真器中的光标与其他典型图形应用程序(比如您最喜欢的图形文本编辑器或文字处理器)中的光标的功能有很大不同。
在图形编辑器中,您作为用户完全可以控制光标。它不是文档的固有部分,而是为了方便您使用而创建的概念,例如选择您要输入的位置或您要选择文本的位置。
在终端仿真器中,光标完全由内部运行的应用程序控制。光标表示应用程序将打印下一段文本的位置。如果您作为用户将其移动到其他地方(您不能直接这样做,但可以通过一些卑鄙的技巧来做到这一点,例如将光标移动的转义序列发送到 tty 行),应用程序的其余输出可能会变得混乱。
你永远无法直接控制光标。有很多情况下似乎你会这样做,但事实并非如此。例如,在你最喜欢的基于终端的文本编辑器中,你按下右箭头,很可能光标会向右移动 1 个单元格。但不一定,例如,如果你靠近右边缘,那么文本编辑器可能会将文本向左滚动,并将光标留在相同的可视位置,甚至将其撤回。你永远不会直接地移动光标。您按下箭头(或任何其他键),此信息到达终端内运行的应用程序,然后该应用程序决定它想要做什么并指示终端执行该操作(可能根据按键移动光标,也可能不移动)。
考虑到这一切,让我们想象一下您想用键盘选择文本。
但是,现有的光标不适合此工作。为了使用键盘进行选择,其他必须引入光标类型,可能仅用于通过键盘进行选择(以及在必要时滚动回滚缓冲区)。您可能希望从“主”光标开始选择,或者可能希望从其他地方开始选择。
这必然会导致非常复杂、违反直觉的用户体验。你需要两种光标的视觉表示,你可能需要进入一种特殊的选择模式,需要知道何时退出它。
对于大多数终端用户来说,与使用鼠标选择文本相比,这可能太不方便了。对于旨在提供合理用户友好的终端,如您在问题中标记的 GNOME 终端,弄清楚如何让此功能可发现、直观、如何清楚地传达您处于哪种模式(常规模式还是选择模式)、如何放弃选择模式、如何清楚地传达那些意外触发此模式并想要离开的人的情况等,这将是相当棘手的。所有这些都是为了一个可能很小的用户群。
这就是为什么我相信只有一小部分终端仿真器(链接后面提到的一些)钒发布)实现了此功能。