如何在 Win 10 上的 Linux 子系统中使用 xclip?

如何在 Win 10 上的 Linux 子系统中使用 xclip?

在 Windows 10 上的 Linux 子系统上使用 xclip 时会出现错误,例如:

cat some/file.txt | xclip
Error: Can't open display: (null)

没有桌面(UI),所以当然没有可用的剪贴板。有没有办法让它与 Windows 剪贴板兼容?

答案1

WSL 问题 #1069有两种解决方法:

cat filePath | clip.exe只是为了向任何偶然发现这个线程的人澄清一下,在命令提示符中使用类型 。
-JetStarBlues 于 2 月 8 日发表评论

或者:

我可以确认运行 Xming 并配置DISPLAY 环境变量足以让某些内容进入 Windows 剪贴板:

$ export DISPLAY=:0
$ echo 'some text' | xclip -selection clipboard

这很好用。显然使用主剪贴板也很好用,所以我猜 Xming 会将两者都重定向到 Windows 剪贴板
。-mateusmedeiros 于 2016 年 9 月 9 日发表评论

答案2

clip.exe < ~/.ssh/id_rsa我将我的 ssh 密钥复制到 WSL2 上的 github。

答案3

我一直在使用 temux,将其添加到我的 .tmux.conf 中使我无需安装 X 服务器即可复制和粘贴:)

#to be able to use mouse buttons and scroll:
set -g mouse on

#to copy to Windows clipboard by marking text
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel clip.exe

#to be able to paste by right clicking (like in default Windows Terminal)
unbind-key MouseDown3Pane
bind-key -n MouseDown3Pane run "tmux set-buffer \"$(powershell.exe -command Get-Clipboard | tr -s '\r\n' ' ')\"; tmux paste-buffer"

答案4

我一直在查看大量有关在 WSL Ubuntu 终端中复制到剪贴板和从剪贴板粘贴的帖子。

在 WSL 中使用剪贴板

复制到剪贴板的最佳方法是:

echo 'something' | clip.exe

最佳粘贴方式:

powershell.exe Get-Clipboard

使用别名简化

您甚至可以在 .bashrc 或 .bash_aliases 中放置别名,使其类似于 Mac bash 终端:

alias pbcopy='clip.exe'
alias pbpaste='powershell.exe Get-Clipboard'

然后从管道复制的命令将是:

echo "hello" | pbcopy

粘贴到文件如下:

pbpaste > pasted.txt

相关内容