search
LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

WSL vim/neovimとwin32yankの設定

WSL上のvim/neovimのクリップボード設定方法です

注意: Windows Subsystem Linux for Previewにするとwin32yank.exeやclip.exeが使えなくなります

neovim

neovimはclipboradをカスタマイズできるので、コピー時・ペイスト時の入出力先をwin32yank.exeにしてあげればよい

let g:clipboard = {
    \   'name': 'myClipboard',
    \   'copy': {
    \      '+': 'win32yank.exe -i',
    \      '*': 'win32yank.exe -i',
    \    },
    \   'paste': {
    \      '+': 'win32yank.exe -o',
    \      '*': 'win32yank.exe -o',
    \   },
    \   'cache_enabled': 1,
    \ }

vim

vimはclipboardカスタマイズできない。

  • コピー時はTextYankPostをトリガーにしてwin32yankに書き込み、
  • ペイスト時はwin32yankの内容を 一旦レジスタに書き込んだのち ペイストするようにした。

:r !win32yank.exe -oという設定をよく見かけるけれど、ペイスト後のカーソルの位置が気に食わないのでレジスタを仲介することにしました。

augroup Yank
    au!
    " Yankにフックしてレジスタに登録された文字をwin32yankにも出力する
  autocmd TextYankPost * :call system('win32yank.exe -i', @")
augroup END
" win32yank内の文字を一旦vimのレジスタに登録してからペイストする
noremap <silent> p :call setreg('"',system('win32yank.exe -o'))<CR>""p

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1