Linux终端+桌面组合使用Primary和Clipboard提高工作效率

什么是Primary

日常工作中,Linux作为服务器环境的情况较多,但其实作为桌面系统也有一些特有的高效姿势,比如Primary Selection(主选择,或者习惯上叫中键剪贴板)。在绝大多数支持选中的情形下,选中的内容就会自动保存在这里,只要再按鼠标中键就能粘贴出来,过程中并没有涉及到传统的Ctrl+C, Ctrl+V操作的剪贴板。这可带来很多便利,最明显的就是在连续使用鼠标操作,进行多次复制粘贴时,既不需要右键呼出复制粘贴菜单,也不用左手一直控制键盘快捷键;程序员常见的一个情景是在网站上看别人的代码时,许多平台会限制登录、关注甚至开会员后才允许复制代码块。此时使用Primary选中然后直接中键粘贴就可以绕过限制,而且比控制台方便不少。

Primary和Clipboard在终端中的重定向

许多时候,我们需要复制终端程序的输出进行搜索/问chatGPT,这往往会使我们不得不右手离开键盘去选中程序的输出来复制,这样即使用Primary也不会太方便,特别是输出很长时,还需要滚屏仔细区分输出的边界,非常影响工作效率。这时候,可以通过将输出重定向的方法直接复制到Primary或者Clipboard,达到直接粘贴复用的效果。这里可用的命令行工具有xsel和xclip,推荐使用后者。

首先,我们需要先安装xclip,如在使用apt的Debian系发行版上:

bash 复制代码
sudo apt install xclip

然后,我们可以这样使用xclip来实现重定向:

bash 复制代码
echo test | xclip -selection primary # 复制到Primary
python main.py | xclip -selection clipboard # 复制到clipboard

很明显,这里的-selection后面跟的就是想要的复制目的地,我们还可以设置alias来简化这个重定向,这里我采用的是xp和xc,简单好记,且不和常见命令冲突:

bash 复制代码
# ~/.bashrc或者~/.zshrc中
alias xc="xclip -selection clipboard"
alias xp="xclip -selection primary"

然后我们上面的命令就变成了简单的情形,只需要多敲5个字符;重定向默认会不再输出在终端里,如果还想肉眼检查这个输出,中间还可以套一层tee:

bash 复制代码
echo test | xp # 不显示输出
python main.py | tee | xc # 同时显示输出
hello world

上面展示了将输出定向到这两个剪贴板的过程。事实上,想在终端里粘贴取出复制的内容,也可以不用鼠标而使用xclip来控制,只需要比之前多加一个-o参数即可:

bash 复制代码
xp -o # 从Primary取出内容
test
xp -o | xc # 把Primary的内容存到Clipboard中,反之同理

虽然Primary往往更快,但是上面这种把Primary倒到Clipboard的操作也是很常用的。Primary容易受到之后的选中操作的覆盖,不利于较长期地存储内容,而且有些软件不支持Primary,如Wine应用实际上是Windows,没有Primary的概念,我们显然要转到Clipboard来与之交互。

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
Android系统攻城狮2 分钟前
Linux FFmpeg深度解析之avcodec_parameters_copy调用流程与实战(二十五)
linux·运维·服务器·ffmpeg·音视频·车载音频
ITKEY_44 分钟前
emacs 文件管理Dired, the Directory Editor
linux·编辑器·emacs
源图客1 小时前
解决CentOS操作系统网络异常问题
linux·运维·centos
HideF11 小时前
Linux sudo
linux
FlightYe11 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎12 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
牛马鸡niumasi13 小时前
【Linux】C语言文件操作
linux
say_fall13 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii14 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
AI+程序员在路上14 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能