【WSL】クリップボードを使ってコピー & ペーストを行う


はじめに

macOSのpbcopy, pbpasteと同じようなことをWSLでも行いたかったので、調べてみました。

結論

クリップボードにコピー(pbcopy)

clip.exeを使います。

$ echo 'hogehoge' | clip.exe

# クリップボードに `hogehoge\n`が格納されている

クリップボードからペースト(pbpaste)

powershell.exe -command 'Get-Clipboard'を使います。

$ powershell.exe -command 'Get-Clipboard' 
hogehoge

# 末尾で改行される

pbcopy, pbpasteと同じような形で使用した場合は、aliasに指定します。

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

補足

改行コードを取り除く

どうやら、clip.exeを使用すると、末尾に\nが入るようです。
クリップボードにコピーする際に改行コードを取り除くのは難しそうなので、
ペーストする際に取り除くようにします。

$ powershell.exe -command 'Get-Clipboard' | perl -pe 'chomp if eof'
hogehoge
# 末尾の改行が取り除かれる

参考