Mientras uso WSL / Bash para Windows, quiero poder usarlo y yy 3yy de pla misma manera que siempre funcionan en vim, pero conectando al portapapeles del sistema compartido por todas las aplicaciones, no al portapapeles interno de vim ... Ya tengo lo mismo para administrar el portapapeles historia.
Parece que Vim ya tiene una opción integrada para sincronizar el búfer de copiar / pegar con el portapapeles del sistema ... Sin embargo, el problema al ejecutar WSL es que realmente necesita usar /mnt/c/Windows/System32/clip.exepara acceder al portapapeles ... Entonces, aunque me gustaría para poder usar:
set clipboard^=unnamed
Parece que todavía no tiene soporte para WSL.
Entiendo que los neovim tienen esto como una opción, pero realmente no quiero experimentar con neovim en este momento ...
Por ahora, lo más parecido a una solución alternativa que he encontrado es:
nnoremap <silent> <leader>y :call system('/mnt/c/Windows/System32/clip.exe', @0)<CR>
vnoremap <silent> <leader>y :call system('/mnt/c/Windows/System32/clip.exe', @0)<CR>
Pero esta es una solución realmente horrible en mi opinión ... Hace que copiar un proceso de dos pasos ...
Por supuesto, puedo copiar y pegar con el mouse / shift + ins, pero creo que debe haber una manera de hacer que esta sincronización funcione correctamente en Vim.
fuente

Respuestas:
Soy consciente de que esta es una pregunta muy antigua, pero recientemente encontré una buena solución. Después de mucha frustración, encontré estas formas de acceder al portapapeles del sistema de Windows copiando y pegando.
Al copiar, con la versión vim> = 8.0.1394, como se señaló en otra respuesta https://vi.stackexchange.com/a/15190
Pegar, asignar a comandos de registro falsos, es decir, "= p o" + p o lo que sea.
El pegado con el botón derecho funciona, pero no es satisfactorio si no desea usar el mouse
fuente
vihe agregadonnoremap <S-Insert> :r !powershell.exe -Command "& {Get-Clipboard}"<Enter>noremap "+y :exe 'norm a'.system('echo '.shellescape(join(v:event.regcontents, "\<CR>")).' | clip.exe')<CR>(que no funciona ...)¿Qué hay de esto?
unamees un comando de terminal de Linux que devuelve información del sistema operativo, de modo que volveráLinuxpara WSL. Mientras que con el-rindicador, el comando devuelve información de lanzamiento del sistema operativo, por lo tanto, debe incluir "Windows".TextYankPostes un evento vim (ver:h TextYankPostenvim), que detecta su actividad de extracción de texto.clip.exees un comando del símbolo del sistema de Windows en WSL (consulte elCLIP /?símbolo del sistema) que copiatexto regresa de uncommandclipbord a través detext | clip.exeocommand | clip.exe. Aquíclip.exese ejecuta desde vim por la función vimsystem.fuente
has('wsl')lugar desystem('uname -r') =~ "Microsoft".Hice un PR para el soporte de WSL para fakeclip hace algún tiempo.
Vea vimawesome sobre cómo instalarlo;
help fakeclippara usofuente