Para tirar isso da mesa agora e evitar qualquer confusão... Isso é para Linux rodando em Windows 10 (ubunutu), também conhecido como WSL. Não é o mesmo que cygwin e windows ou Linux independente. É a sua própria fera.
Portanto, tenha em mente o que foi dito acima antes de ser referenciado em todos os artigos que já li ou comentar que isso foi solicitado antes.
Alguém sabe como fazer copiar e colar na área de transferência do Windows OU na emulação WSL Ubuntu Linux? Estou usando set clipboard=unnamedplus
. Não está funcionando, não importa quais combinações eu use, como yy
, "+yy
, etc.
Sim, é vim-gtk
com +xterm_clipboard
suporte.
Responder1
(Editar: abril de 2024) Com o que há WSL version: 2.1.5.0
de mais recente, Win11
simplesmente ter set clipboard+=unnamedplus
agora parece ser suficiente para neovim
, pelo menos com as versões mais recentes do Ubuntu na Microsoft Store.
(Editar: outubro de 2020) Para a área de transferência bidirecional neovim
, tenho usadowin32yank
por vários meses sem problemas. Coloque win32yank.exe
em algum lugar no seu caminho no Linux (qualquer lugar deve servir) e adicione o seguinte ao seu arquivo 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,
\ }
(Resposta original) Se você deseja apenas migrar do VIM para o Windows, para WSL2 e Ubuntu 20.04,esta respostano Reddit funcionou perfeitamente para mim com VIM padrão e WSL2 Ubuntu padrão.
Coloque o seguinte no seu .vimrc
(na parte inferior, por exemplo):
" 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
Responder2
Esta soluçãofuncionou para mim, graças ao usuário do githubRobiev.
Para completar, esta é uma conclusão de sua resposta:
- InstalarVcXsrv (se começar após a instalação, pare).
- Inicie-o usando o programa recém-instaladoXLaunch(procure no menu iniciar).
Vá com todas as opções padrão e garanta oopções da área de transferênciasão verificados.
No final, salve a configuração em um arquivo,
config.xlaunch
(use isso para iniciá-lo a partir de agora).Coloque export
DISPLAY=localhost:0.0
no seu.bashrc
bash para Windows e executesource ~/.bashrc
em qualquer terminal aberto.Certifique-se de que o vim esteja instalado usando o suporte à área de transferência.
vim --version | grep clipboard
deveria dizer+clipboard
, não-clipboard
. Além disso, se você executar o comando ex:echo has('clipboard')
no vim e ele disser0
que não há suporte para área de transferência compilado.Se você não tiver suporte para área de transferência, instale um pacote vim compilado com suporte para área de transferência, por exemplo
apt-get install vim-gtk
, .Agora você pode acessar a área de transferência do sistema Windows via
"*p
e"*y
ou configurá-la como padrão inserindoset clipboard=unnamed
seu.vimrc
arquivo.
ComoRobievmenciona que agora você também deve poder usar a área de transferência do Windows em máquinas remotas usando o encaminhamento SSH X.
Responder3
Responder4
Se você estiver usando o vim (ou neovim), talvez você deva saber ANSI OSC52
que é um padrão que tenta resolver esse problema de "copiar/colar" (em casos específicos, por exemplo, em um terminal SSH).
Então aqui está um plugin útilvim-oscyankque implementa este padrão e o que você precisa fazer é apenas instalar este plugin e definir um mapeamento de teclado para ele. Você definitivamente deveria tentar.