如何从kill-ing中提取文本并将其插入到另一个终端窗口中的光标位置?

如何从kill-ing中提取文本并将其插入到另一个终端窗口中的光标位置?

是否可以从一个终端复制文本并将其输入到另一个终端而不选择它?

更准确地说,在同一个终端窗口中,我可以通过 杀死文本行CTRL-U,然后通过 猛拉被杀死的行CTRL-Y。但是,CTRL-Y在另一个终端窗口甚至另一个终端选项卡中尝试时似乎不起作用。

我在 Arch Linux x86_64 的 KDE 桌面环境(plasma 5.27.6)中使用 bash 5.1.16、Konosle 终端。

答案1

在现代bash的默认配置中,Ctrl-UCtrl-分别Y绑定到 readline 库函数unix-line-discardyank。换句话说,这些操作是由bash它自己处理的,而不是由 Konsole 处理的。

shell 不知道其他终端窗口或选项卡,因此它无法将终止的文本传递给它们。为此,您需要一个真正集成到窗口系统的 shell,而不是驻留在终端仿真器中的 shell。

如果bind-tty-special-chars将 readline 变量设置为 Off,那么Ctrl-U将回退到 TTY/PTY 驱动程序的kill字符功能(参见stty -aman termios),而这将无法被 shell 撤消 - 并且由于每个终端选项卡都是使用单独的 PTY 设备实现的,所以该层的问题也会相同。

所以答案一定是:使用普通的shell,将文本从一个终端会话复制到另一个终端会话(不使用某种可以跨越多个 PTY 的外部机制(例如 GUI 终端仿真器,或)bash来选择复制的文本)是不可能的。screentmux

相关内容