Open melink14 opened 4 years ago
I add those in my .tmux.conf
, it works
if-shell '[ -n "$WSL_DISTRO_NAME" ] && command -v powershell.exe >/dev/null 2>&1' {
set -g @override_copy_command \
'customclip(){ local STDIN=$(cat -); powershell.exe -command "Set-Clipboard" -Value "$STDIN"; }; customclip'
}
I add those in my
.tmux.conf
, it worksif-shell '[ -n "$WSL_DISTRO_NAME" ] && command -v powershell.exe >/dev/null 2>&1' { set -g @override_copy_command \ 'customclip(){ local STDIN=$(cat -); powershell.exe -command "Set-Clipboard" -Value "$STDIN"; }; customclip' }
With multiline text, this doesn't work.
Finally I decide to use xsel
. It works well with multiline.
if-shell '[ -n "$WSL_DISTRO_NAME" ] && command -v powershell.exe >/dev/null 2>&1' {
set -g @override_copy_command 'xsel -i --clipboard'
}
Noticed this while working on some Japanese parsing but whenever I copied with tmux yank, the later paste would be garbled text.
Eventually, tracked it down to clip.exe not supporting it. For full support there are two reasonable options:
powershell.exe -command "Set-Clipboard" -Value "text to copy"
which most WSL environments probably already have but would require some work to accept the argument from STDIN. (bash function or script)utf8clip dotnet program which works just like clip.exe but handles utf8. I chose to use this one and there's no issue either though it was probably a bit more work than 1 in the end...
I used a
if-shell
conditional to only override the command if the better command existed to make it easier to share my dotfiles.