为什么nano有两种不同的复制/粘贴?

为什么nano有两种不同的复制/粘贴?

如果没有启用鼠标支持(我的默认设置),您可以将鼠标拖动到文本上并通过右键单击执行标准“复制/粘贴”,这使您可以将测试粘贴到操作系统或浏览器上的任何位置。但是,如果我用MA制作文本,我必须用M-Shift-6(M-^)复制文本,为什么他们要这样设计nano?

答案1

经典的 X11 复制/粘贴(用鼠标左键标记文本,用中键粘贴)不是由终端模拟器本身完成的,nano而是由终端模拟器本身完成的。

(如果您使用 PuTTY 作为终端模拟器,则粘贴通常是鼠标右键,因为在为 Windows 设计的鼠标中不能保证鼠标中键的存在。)

nano了解,“你”只是非常快速地重新输入标记的文本。终端仿真器实际上将标记文本块上的字符重新传输回 TTY 标准输入,就像用户键入它们一样。

这种文本复制功能非常原始,但由于它是由终端仿真器(即xtermGNOME Terminal 或 PuTTY)实现的,因此它适用于所有基于文本的程序,而不需要任何特殊支持。

如果启用 的nano鼠标支持,它会告诉终端仿真器使用更高级的基于终端仿真器的鼠标支持来覆盖此默认复制/粘贴功能。然后,终端仿真器将仅发送nano特殊代码来描述终端窗口内的任何鼠标事件,并且nano能够自行决定如何处理它们。

答案2

Nano 有自己的剪贴板,而你的 GUI 有不同的剪贴板。 Nano 不是一个 GUI 程序;它是一个 GUI 程序。所以,这可能就是为什么它不使用 GUI 的剪贴板(它被设计为在甚至没有 GUI 的系统上运行,并且 shell 并不总是提供剪贴板;因此,它需要自己的剪贴板)。

不管你信不信,你可以使用 GUI 的剪贴板来进行 Nano 的复制和粘贴。

然而,与此同时,终端仿真器通常有在命令行上使用 GUI 剪贴板的快捷方式(例如,在我的系统上的 gnome 终端上,按 ctrl+shift+c 将复制到其中,然后按 ctrl+shift +v 将从其中粘贴)。但是,除非您配置 Nano 自己的复制/粘贴来执行此操作,否则使用键盘选择文本将不允许您使用 GUI 的剪贴板复制所选文本。

据我所知,Nano 的剪贴板也不能与其他命令行应用程序的剪贴板互操作。

相关内容