Windows Subsystem Linux で動かしてる端末版 Vim のバッファの内容をクリップボードにコピーしたい
ので書いた。 さっと書いた雑クオリティなので GitHub - kana/vim-fakeclip: Vim plugin: Provide pseudo "clipboard" registers 使うのが良いんだと思います。 help ちらっと見たら WSL にも対応してるっぽいので、OS 間で統一して扱いたいとかいう人はそちらをどうぞ。
追記 (2018/09/18):range に対応したのでビジュアルモードで :'<,'>Clip したらその箇所だけコピーされるようになった。これ以上ブログに転載するのも面倒なので最新版はこちらから
let s:is_wsl = has('unix') && isdirectory('/mnt/c/') if s:is_wsl command! -bar -range=% Clip <line1>,<line2>call s:cmd_clip() function! s:cmd_clip() range abort let windir = s:windir() if windir is# '' echoerr 'windows directory not found' return endif let clip = join([windir, 'System32', 'clip.exe'], '/') let str = join(getline(a:firstline, a:lastline), "\n") call system(clip, str) endfunction function! s:windir() abort return get(filter([ \ '/mnt/c/Windows', \ '/mnt/c/WINDOWS', \], {_,p -> isdirectory(p)}), 0, '') endfunction endif