Não é possível copiar para a área de transferência do Vim

28

Estou executando o Vim 7.3 no Linux Mint 13 (usando MATE) e não consigo salvar texto na área de transferência do sistema. Eu corro o Vim no terminal e copio o texto do terminal com CTRLINSERT. Quando seleciono texto no Vim (com o mouse ou no modo visual), CTRLINSERTnão copio nenhum texto. Além disso, quando clico com o botão direito do mouse, Copiar fica acinzentado. Além disso, não consigo gravar no buffer do sistema puxando o registro correspondente usando os comandos vim. No entanto, consigo colar no modo de inserção (usando SHIFTINSERTou clique com o botão direito do mouse em colar). Também sou capaz de copiar texto diretamente do terminal usando a mesma técnica, mas não o texto do Vim.

Aqui está o meu ~ / .vimrc atual . A parte relevante é mais provável set clipboard=autoselect,unnamed,exclude:cons\|linux. Se eu colocar finishno topo do meu ~ / .vimrc, tenho o mesmo problema, então acho que a linha está errada, mas tentei set clipboard=unnamede tive o mesmo comportamento.

Poderia haver outro arquivo de configuração afetando o comportamento do Vim? Como posso alterar meu ~ / .vimrc para permitir a cópia de texto do Vim?

maksim
fonte

Respostas:

55

Acredito que seu problema de cópia seja causado por:

mouse=a 

no seu .vimrc Isso configura o seu vim no modo visual sempre que você seleciona algo com o mouse. E, por alguma razão maluca, não é permitido copiar quando estiver no modo visual. Você pode contornar isso mantendo pressionada a tecla Shift ao selecionar o texto para não entrar no modo visual, permitindo que você use o menu de cópia.

ou você pode mudar para:

:set mouse=v

e a cópia funcionará novamente. adicione-o ao seu arquivo ~ / .vimrc se quiser que ele seja permanente


fonte
2
Embora isso possa realmente resolver o problema, uma explicação de por que funciona seria mais útil. Sem ele, sua resposta está apenas dizendo a alguém para pressionar o botão verde duas vezes - pode funcionar, pode não, mas não os esclarece.
precisa saber é o seguinte
Obrigado, isso resolveu. A explicação que você adicionou após o comentário de voretaq7 também ajudou muito!
Isso funciona para Cygwin também.
21412 Dave Jarvis
11
Esse modo destacará tudo; portanto, se eu quiser copiar algumas linhas, também copio os números das linhas e todo o espaço vazio após cada linha até o final da tela. Existe uma maneira de selecionar apenas o conteúdo relevante (que é como o destaque funciona quando mouse=a)?
Dennis
Boa resposta. Apenas uma vantagem: mais modos de mouse aqui:help mouse
Dr Beco
10

sudo apt-get install vim-gtk provavelmente resolverá esse problema para outros googlers.

O bom e velho vim estilo terminal não tem acesso à área de transferência, que faz parte do sistema X windows. A instalação vim-gtkfornece ao vim o acesso necessário para modificar e visualizar a área de transferência.

Cory Klein
fonte
2
Trabalho! No Debian Buster (agora em teste), instalei o vim-gtk e, em seguida, minha linha de comando vim no xterm me permitiu usar os buffers *e +para acessar os buffers da janela x. A instalação do vim-gtk usa as alternativas Debian para definir vim -> /usr/bin/vim.gtk.
RobertL
0

O terminal não sabe nada sobre seleções de vim, portanto, não espere que seja de ajuda. Você precisará que o vim seja construído contra o X (por exemplo gvim -v) e, em seguida, puxe e coloque no +registro.

Ignacio Vazquez-Abrams
fonte
3
O vim-gtkpacote no Ubuntu contém suporte à área de transferência (mesmo quando executado como vimem um terminal).
mgorven
Concordado e confirmado no Debian Buster (agora em teste), instalei o vim-gtk e, em seguida, minha linha de comando vim no xterm me permitiu usar os buffers * e + para acessar os buffers da janela x. A instalação do vim-gtk usa as alternativas Debian para configurar o vim -> /usr/bin/vim.gtk.
RobertL
0

apenas gvimno arch linux, se alguém quiser saber. Além disso, veja neovim(e python-neovim&& python2-neovimpara o suporte do You Complete Me, etc.).

dylnmc
fonte
Tente usar o gvim via ssh.
hopeeekr