使用 Bash for Windows 复制到剪贴板
Copy to clipboard using Bash for Windows
如何将结果从命令行直接复制到剪贴板?
在 Windows 的 cmd.exe 上,我可以简单地 echo "asd" | clip
并将输出通过管道传输到剪贴板。
我尝试为此安装 xclip
,虽然它编译了,但在调用时打印:
Error: Can't open display: (null)
使用鼠标不是解决方案。
这似乎仍然不受支持:(https://www.reddit.com/r/Windows10/comments/4gwnom/can_bash_on_windows_interact_with_the_system/)
一个聪明的解决方法是开源工具 plak (https://github.com/sander/plak)
在 Build 14393 或更高版本中,如果您想在 WSL 控制台中将某些内容复制到剪贴板,只需将“.exe”添加到您在 Windows cmd 中执行的操作即可。
echo "aaa"|clip.exe
从剪贴板读取:
powershell.exe -command "Get-Clipboard"
为了复制非 ascii 字符(其他语言),我不得不这样做:
echo 'αβψδεφγ' | iconv -f utf-8 -t utf-16le | clip.exe
utf-16le 排除了前面的 BOM,因此您可以将其粘贴回去
如果你想使用更多的东西 'easy',你可以将来自@reker 的命令添加到你的 ~/.bashrc 文件中(如果你使用 zsh,你必须把它放在 ~ /.zshrc 文件).
我将这两行添加到我的文件中:
alias paste="powershell.exe -command \"Get-Clipboard\""
function clip { "" | clip.exe;}
我把clip当作一个函数使用,所以我可以像('command' 'use this for command')那样使用命令linux。如果您更喜欢别名方式,可以添加类似
的内容
alias clip=clip.exe
您不必一直编写 .exe。
别忘了运行命令
source ~/.zshrc
保存文件后。否则更改只会在您的控制台重新启动后应用。
如何将结果从命令行直接复制到剪贴板?
在 Windows 的 cmd.exe 上,我可以简单地 echo "asd" | clip
并将输出通过管道传输到剪贴板。
我尝试为此安装 xclip
,虽然它编译了,但在调用时打印:
Error: Can't open display: (null)
使用鼠标不是解决方案。
这似乎仍然不受支持:(https://www.reddit.com/r/Windows10/comments/4gwnom/can_bash_on_windows_interact_with_the_system/)
一个聪明的解决方法是开源工具 plak (https://github.com/sander/plak)
在 Build 14393 或更高版本中,如果您想在 WSL 控制台中将某些内容复制到剪贴板,只需将“.exe”添加到您在 Windows cmd 中执行的操作即可。
echo "aaa"|clip.exe
从剪贴板读取:
powershell.exe -command "Get-Clipboard"
为了复制非 ascii 字符(其他语言),我不得不这样做:
echo 'αβψδεφγ' | iconv -f utf-8 -t utf-16le | clip.exe
utf-16le 排除了前面的 BOM,因此您可以将其粘贴回去
如果你想使用更多的东西 'easy',你可以将来自@reker 的命令添加到你的 ~/.bashrc 文件中(如果你使用 zsh,你必须把它放在 ~ /.zshrc 文件).
我将这两行添加到我的文件中:
alias paste="powershell.exe -command \"Get-Clipboard\""
function clip { "" | clip.exe;}
我把clip当作一个函数使用,所以我可以像('command' 'use this for command')那样使用命令linux。如果您更喜欢别名方式,可以添加类似
的内容alias clip=clip.exe
您不必一直编写 .exe。
别忘了运行命令
source ~/.zshrc
保存文件后。否则更改只会在您的控制台重新启动后应用。