![为什么我必须先粘贴并复制重定向到“xsel -b”的输出,然后才能将其粘贴到其他应用程序?](https://linux22.com/image/920865/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%BF%85%E9%A1%BB%E5%85%88%E7%B2%98%E8%B4%B4%E5%B9%B6%E5%A4%8D%E5%88%B6%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E2%80%9Cxsel%20-b%E2%80%9D%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%8C%E7%84%B6%E5%90%8E%E6%89%8D%E8%83%BD%E5%B0%86%E5%85%B6%E7%B2%98%E8%B4%B4%E5%88%B0%E5%85%B6%E4%BB%96%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我习惯echo "stuff" | xsel -b
将“东西”放在剪贴板上。
我通常用它来输出其他命令,例如
realpath "./file" | xsel -b
我可以直接将其粘贴到某些 GUI 应用程序中(例如我的浏览器 - Firefox),但不能粘贴到其他一些应用程序中(例如我的 IDE,它什么都没有粘贴)。但如果我将其粘贴到浏览器中,从那里再次复制并尝试将其粘贴到我的 IDE,这似乎有效。
对此该如何解释呢?
答案1
如何粘贴?有两个不同的剪贴板(不是完全正确的术语,但足够接近)。
这是来自man xsel
The X server maintains three selections, called PRIMARY, SECONDARY and CLIPBOARD. The PRIMARY selection is conventionally used to implement copying and pasting via the middle mouse button. The SECONDARY and CLIPBOARD
selections are less frequently used by application programs. This program operates on the PRIMARY selection unless otherwise specified.
您可以尝试echo "xxx"| xsel
。echo "yyy"|xsel -b
然后当您尝试将其粘贴到终端等时,您会通过 shift-ctrl-v 获得一个文本,通过 shift-ins 获得另一个文本。
所以这取决于哪个应用程序使用哪个选择。