从 Firefox 复制/粘贴到终端并不总是有效

从 Firefox 复制/粘贴到终端并不总是有效

使用英石数据管理,根据我选择文本的方式(例如鼠标与键盘)以及文本所在的位置(例如文档正文与地址栏),从 Firefox 复制文本并将其粘贴到 st 并不总是有效。

有两个不同的剪贴板吗?

有没有办法统一它们?

答案1

从某种意义上说,是的,有两个不同的剪贴板(尽管 X11 称它们为“选择”,并且只有其中一个选项称为“剪贴板”)。

很可能,您正在考虑“主要选择”(这是一个可以理解的错误,因为它的功能更像 Linux 发行版上的功能,而不是 Windows 或 Mac 下的功能 - 不过,根据记录,通常可以使用相同的键盘快捷键进行交互Windows 和 Mac 下的主要选择与 Linux 下相同)。

剪贴板通常通过用于复制和粘贴(分别)的Ctrl+{ c, } 键绑定进行控制。v另一方面,初选有多种互动方式。使用鼠标选择任何内容都会自动将其放入主选择中。然后,通常可以单击鼠标中键来粘贴。还可以使用键盘:{ Ctrl, Shift}+Insert可用于从/向主选择复制和粘贴(再次分别)。

奇怪的是,似乎并不是所有应用程序都支持 X 的剪贴板。而且,虽然看起来很不幸,但没有办法统一主选择和剪贴板。但是,有两种解决方案适合您。

  1. 使用主要选择
    它几乎普遍可用,并且(至少,我个人认为)更加灵活。

  2. 使用替代的剪贴板管理器
    有很多第三方剪贴板管理器,它们提供比内置的功能更强大的功能。

举例来说,您可以使用菜单或者剪辑。然而,还有更多的选择,多得我数不过来。


写完这个答案一段时间后,我偶然发现了一个名为的剪贴板管理器clipit。除了其他非常方便的功能之外,clipit还提供了同步主选择和 X 剪贴板的功能。这在功能上相当于统一两个选择,并且非常好;我想这正是您正在寻找的。

答案2

我在 FreeBSD 中使用 Firefox + uxterm/xterm 时遇到了这个问题。我不确定这是否与不使用桌面管理器有关(我正在使用 MWM)。

我发现这个问题的最佳解决方案是使用:

autocutsel -fork -selection CLIPBOARD
autocutsel -fork -selection PRIMARY

作为你的一部分.xinitrc

然后,每当您使用 CLIPBOARD 或 PRIMARY 时,所有内容都会同步,并且您可以从 Firefox 复制 (CONTROL+C) 到 xterm(中键单击或 SHIFT+INSERT)。

另一个有用的工具是查看正在发生的事情xcb

autocutsel都是xcb经典的 X11 工具,通常在 Linux 发行版和 FreeBSD 中可用。

答案3

我不使用st,但我有可能对普通受众有帮助的信息。我的 LXTerminal 默认设置使用Ctrl+ Shift+{ c, v} 分别进行复制和粘贴。使用Shift很有用,因为需要Ctrl+c来发送信号SIGINT

相关内容