1
Help us understand the problem. What are the problem?

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?