yazi 剪贴板实战:零配置搞定 Unix、Windows 与 SSH 的复制粘贴
【免费下载链接】yazi💥 Blazing fast terminal file manager written in Rust, based on async I/O.项目地址: https://gitcode.com/GitHub_Trending/ya/yazi
yazi 是 Rust 写的终端文件管理器,靠异步 I/O 保持快速响应,yazi 剪贴板是它的招牌能力之一。本文拆解这套跨平台剪贴板方案,讲清复制粘贴为何在本地和 SSH 里都能直接生效。
终端复制粘贴难在哪:SSH 断链与工具碎片化
🖥 你 SSH 连上远程服务器,选中一行命令想拷回本地,Ctrl+C/V 却毫无反应。换台 Linux 机器,上次好用的命令又找不到了:Wayland 上装的是 wl-paste,X11 上是 xclip,macOS 只有 pbpaste。终端文件管理器的复制粘贴体验,往往就卡在这一步。
多平台剪贴板后端:yazi 剪贴板自动挑选系统工具
yazi 把剪贴板读写封装进 剪贴板模块,你只管按快捷键,具体调哪个工具由它来判断。
Unix 下读取时,yazi 会依次尝试 pbpaste、termux-clipboard-get、wl-paste、xclip、xsel,谁可用就用谁;写入则走 pbcopy、wl-copy 等对应命令。Windows 下直接调用 clipboard-win 库读写系统剪贴板,免掉命令行开销。你感知到的只有一句话:装好 yazi,复制粘贴就能用。
| 环境 | 读取 | 写入 |
|---|---|---|
| macOS | pbpaste | pbcopy |
| Wayland | wl-paste | wl-copy |
| X11 | xclip / xsel | xclip / xsel |
| Termux | termux-clipboard-get | termux-clipboard-set |
| Windows | clipboard-win 直读 | clipboard-win 直写 |
OSC52 远程剪贴板:让 SSH 里的复制真正生效
SSH 是重灾区:本地剪贴板工具在远端根本不存在。yazi 用 OSC52 协议破局——它是一类终端转义序列,终端模拟器收到后会直接把内容写进本机系统剪贴板。
写入时,yazi 通过 OSC52 序列实现 把内容先发给终端,再补一轮本地工具。于是你在远端 yazi 里复制后切回本地窗口,Ctrl+V 就能粘出来,远程与本地共用同一块剪贴板。
内部缓存兜底:工具缺席时复制粘贴不断线
最极端的场景——纯 SSH 会话、极简发行版——五个工具一个都不在。yazi 在内存里留了一块缓存:写入时先落缓存,读取时若检测到当前处于 SSH 连接、或所有工具都失败,就直接返回缓存内容。环境再光秃,yazi 里的复制粘贴也不会失效。
快速上手:三步跑通 yazi 剪贴板
git clone https://gitcode.com/GitHub_Trending/ya/yazi cd yazi cargo build --release ./target/release/yazi编译完成后直接运行即可,不同系统会自动匹配剪贴板后端,无需手动配置。
yazi 剪贴板的三个亮点:系统工具自动挑选、OSC52 打通远程、内存缓存保底。本地、Wayland、X11、SSH 会话全部适用。下次 SSH 连服务器时,试试在 yazi 里复制一段文本,再回本地终端粘贴验证。
【免费下载链接】yazi💥 Blazing fast terminal file manager written in Rust, based on async I/O.项目地址: https://gitcode.com/GitHub_Trending/ya/yazi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考