为什么 Linux 在将文本粘贴到 shell 时允许使用退格键?

为什么 Linux 在将文本粘贴到 shell 时允许使用退格键?

在我遇到的许多 Linux 发行版中,将文本粘贴到 shell 中时都会包含退格字符。为什么不阻止粘贴这些字符 - 或者此功能是否提供了一些有用的功能?

换句话说,Linux shell 是否“知道”它是粘贴的字符串还是手写的字符串?

这种行为如何处理?

答案1

shell 只是在终端中运行的应用程序。对于粘贴,仅模拟器相关,但仍然有“真正的”终端(提示:Linux 控制台是不是其中一个)。

忽略各种控制台实现,因为粘贴文本是以更有限的方式完成的,所以在 X 中运行的终端是问题的重点。终端模拟器只是看到一系列事件。键入的键或粘贴的文本对于终端模拟器来说看起来是一样的。

仅考虑终端模拟器(以及它们之间的选择/粘贴),退格键不是问题,因为选择/粘贴可以处理终端窗口上显示的内容。也就是说,如果用户在终端窗口上选择文本,则只能选择可打印文本(特殊情况下可能包含制表符)。没有任何退格字符(除非有人的终端实现有问题),因为退格告诉终端移动光标左边。没有可打印留在左侧供终端提供选择。有数百个可能使用的其他终端控件,但退格键简单且用途广泛。

退格键是浏览器等实施不良的应用程序的一个问题(它实际上应该提供可打印文本的显示......),它显然会存储一些脚本编写者决定应该存储在屏幕上的任何内容。

所以...而不是问为什么终端模拟器仍然允许 BS,有人可能会问为什么 GUI 浏览器允许这种行为。

相关内容