Para eliminar esto ahora y evitar cualquier confusión... Esto es para Linux que se ejecuta en Windows 10 (ubunutu), también conocido como WSL. No es lo mismo que Cygwin y Windows o Linux independiente. Es su propia bestia.
Así que tenga en cuenta lo anterior antes de que se me haga referencia en todos los artículos que ya he leído o comente que esto se ha preguntado antes.
¿Alguien sabe cómo hacer que copiar y pegar funcione desde el portapapeles de Windows O desde la emulación WSL Ubuntu Linux? Estoy usando conjunto clipboard=unnamedplus
. No funciona, no importa qué combinaciones use como yy
, "+yy
etc.
Sí, es vim-gtk
con +xterm_clipboard
apoyo.
Respuesta1
(Edición: abril de 2024) Con lo último, WSL version: 2.1.5.0
simplemente Win11
tener set clipboard+=unnamedplus
ahora parece ser suficiente neovim
, al menos con las últimas versiones de Ubuntu de Microsoft Store.
(Edición: octubre de 2020) Para el portapapeles bidireccional neovim
, he estado usandowin32yank
durante varios meses sin problemas. Colóquelo win32yank.exe
en algún lugar de su ruta en Linux (cualquier lugar debería estar bien) y agregue lo siguiente a su archivo init.vim
.
set clipboard+=unnamedplus
let g:clipboard = {
\ 'name': 'win32yank-wsl',
\ 'copy': {
\ '+': 'win32yank.exe -i --crlf',
\ '*': 'win32yank.exe -i --crlf',
\ },
\ 'paste': {
\ '+': 'win32yank.exe -o --lf',
\ '*': 'win32yank.exe -o --lf',
\ },
\ 'cache_enabled': 0,
\ }
(Respuesta original) Si solo desea pasar de VIM a Windows, para WSL2 y Ubuntu 20.04,esta respuestaen Reddit funcionó perfectamente para mí con VIM estándar y WSL2 Ubuntu estándar.
Ponga lo siguiente en su .vimrc
(en la parte inferior, por ejemplo):
" WSL yank support
let s:clip = '/mnt/c/Windows/System32/clip.exe' " change this path according to your mount point
if executable(s:clip)
augroup WSLYank
autocmd!
autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0) | endif
augroup END
endif
Respuesta2
Esta soluciónfuncionó para mí, gracias al usuario de githubrobbiev.
Para completar, esto es un extracto de su respuesta:
- InstalarVcXsrv (si comienza después de la instalación, deténgalo).
- Inícielo usando el programa recién instalado.Lanzamiento XL(buscar en el menú inicio).
Elija todas las opciones predeterminadas y asegúrese de queopciones del portapapelesestán comprobados.
Al final, guarde la configuración en un archivo,
config.xlaunch
(Úsalo para iniciarlo de ahora en adelante.).Coloque export
DISPLAY=localhost:0.0
en su.bashrc
bash para Windows y ejecútelosource ~/.bashrc
en cualquier terminal abierta.Asegúrese de que vim esté instalado utilizando el soporte del portapapeles.
vim --version | grep clipboard
debería decir+clipboard
que no-clipboard
. Además, si ejecuta el comando ex:echo has('clipboard')
en vim y dice0
que no tiene soporte para portapapeles compilado.Si no tiene soporte para portapapeles, instale un paquete vim compilado con soporte para portapapeles, por ejemplo
apt-get install vim-gtk
.Ahora puede acceder al portapapeles del sistema de Windows a través de
"*p
y"*y
, o configurarlo de forma predeterminada ingresandoset clipboard=unnamed
su.vimrc
archivo.
Comorobbievmenciona que ahora también debería poder usar el portapapeles de Windows desde máquinas remotas usando el reenvío SSH X.
Respuesta3
Respuesta4
Si está utilizando vim (o neovim), tal vez debería saber ANSI OSC52
que es un estándar que intenta resolver este problema de "copiar/pegar" (en casos específicos, por ejemplo, en una terminal SSH).
Entonces aquí tienes un complemento útil.vim-oscyankque implementa este estándar y lo que tienes que hacer es simplemente instalar este complemento y configurar un mapa de teclas para él. Definitivamente, usted debe darle una oportunidad.