## やり方1 > [!info] > #2024/03/12 時点ではこちらの方式を採用。 [[xsel]]を使う。インストールしたら、[[init.lua]]に以下を追加する。 ```lua vim.g.clipboard = { name = 'WslClipboard', copy = { ['+'] = 'xsel -bi', ['*'] = 'xsel -bi', }, paste = { ['+'] = 'xsel -bo', ['*'] = function() return vim.fn.systemlist('xsel -bo | tr -d "\r"') end, }, cache_enabled = 1, } ``` 1つ注意点として、[[Windows]]でクリップボードにコピーし、[[WSL2]]でputすると、[[CRLF改行]]のゴミ `<CR>` が残ってしまう。これを防ぐため、putするときに `"*p` とコマンドを実行し、`\r`を削除するように設定してある。 > [!question] `['+']`のレジスタに登録しないのはなぜ? > > 利便性を考えると`['+']`の[[レジスタ (Vim)|レジスタ]]に上記処理を登録した方が楽と思えるかもしれない... が、わずか(数十msくらい)の処理遅延を感じるため、必要がないときは快適に操作できるよう使わないようにしている。 > [!question] [[win32yank]]を使わないのはなぜ? > [[win32yank]]だけでも実現はできる...が、[[win32yank]]がexeファイルのせいか実行時にラグが生じる。ラグは環境によるが、場合によっては10秒以上フリーズするケースもあり、それでは使えない。 ## やり方2 > [!caution] > 環境によっては`wl-copy`や`wl-paste`にラグがあり、特に`wl-copy`のラグはそのあとのputに直接影響を及ぼす(意図した[[ヤンク]]がputされない)ので要注意。 [[wl-clipboard]]を使う。インストールしたら、[[init.lua]]に以下を追加する。 ```lua vim.opt.clipboard = "unnamedplus" vim.g.clipboard = { name = "WslClipboard", copy = { ["+"] = "wl-copy", }, paste = { ["+"] = function() return vim.fn.systemlist('wl-paste | tr -d "\r"') end, ["*"] = "wl-paste", }, cache_enabled = 1, } ``` [[Windows]]のホストからコピーした`<CR>`は基本的にノイズとなるため自動で除去している。必要な場合は`"*p`としてやればよい。