LoginSignup
6
1

More than 1 year has passed since last update.

WSL vim/neovimとwin32yankの設定

Last updated at Posted at 2020-02-11

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
6
1
0

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
  3. You can use dark theme
What you can do with signing up
6
1