Não conseguir copiar texto do Vim para a área de transferência do sistema, mas capaz de colar da área de transferência do sistema para o vim no Linux

1

Estou usando o sistema operacional Linux. Eu gostaria de copiar algum texto no modo visual do Vim para a área de transferência do sistema e colá-lo em outro shell. Eu tentei o seguinte:

No arquivo vimrc , dentro do diretório / home / {USER} , coloque o seguinte:

vmap <C-c> "*y

Depois disso, saí do shell e, em seguida, abri um novo shell e um arquivo no vim. Fiz a seleção visual e, em seguida, emitiu * y. Arrancou as linhas selecionadas. Eu saí do vim e, em seguida, no shell, emiti CTRL + SHIFT + V . Mas nada acontece.

Eu tentei configurar o seguinte também no arquivo .vimrc:

set clipboard=unnamed

Mas isso também não funciona.

P.S: Eu sou capaz de colar da área de transferência do sistema para o vim usando *p .

Qual pode ser o problema aqui? Estou definindo as opções no arquivo errado .vimrc?

Editar : Quando eu fiz o vim --version | grep prancheta eu vejo o seguinte:

[subhrcho@slc04lyo ~]$ vim --version|grep clipboard
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-xterm_clipboard -xterm_save 
    
por Geek 04.04.2013 / 16:26

2 respostas

4

No Linux, há uma diferença entre "* e "+ . Se você quiser usar a área de transferência do sistema (por exemplo, com Ctrl + Deslocamento + V ), você precisa usar "+ . (Da mesma forma, há um :set clipboard+=unnamedplus nas versões recentes do Vim.)

Para colar o conteúdo de "* em um terminal, use o botão do meio do mouse .

Leia mais sobre isso em :help x11-selection

    
por 04.04.2013 / 16:59
1

Não. Você não pode colar com "*p se o Vim não foi compilado com o suporte da área de transferência.

-clipboard e -xterm_clipboard significam "sem área de transferência". Sem suporte à área de transferência, "*y , "+y , "*p e "+p não podem colar para / da área de transferência de todo .

Se você quiser suporte à área de transferência, você deve obter uma compilação adequada do Vim ( vim-gtk , por exemplo). É tão simples assim.

    
por 04.04.2013 / 23:20