É possível copiar texto do vim para um buffer do sistema?

2

Eu quero copiar o texto do vim, por exemplo. selecionando em visual mode , em seguida, ctrl+insert e gostaria de ter o texto copiado no buffer do sistema, para que eu possa colá-lo em qualquer lugar que eu goste com, por exemplo, ctrl+v . É possível de alguma forma?

O problema surge quando eu preciso copiar texto longo da janela do vim para o buffer. Não posso simplesmente selecionar tudo com um mouse e copiá-lo, porque o texto não cabe na janela.

    
por dhblah 06.07.2011 / 15:07

3 respostas

2

Sim. O Vim tem referências às pranchetas do sistema como registradores, que você pode usar como qualquer outro registrador.

A área de transferência principal é * , portanto, você pode destacar no modo visual e digitar "*y . Se você estiver usando o X11, poderá copiar para o buffer X11 usando o registro + . Por fim, você pode reatribuir o registro padrão ao registro da área de transferência com :set clipboard=unnamed . Se você fizer isso, cópias, toques ou abates automaticamente irão para a área de transferência do sistema sem que você primeiro especifique o registro manualmente.

    
por 06.07.2011 / 15:22
2

A seleção visual ( v , V ou CTRL + V ) pode ser automaticamente copiada para a seleção X11 (buffer *).

No modo não gui, a opção da área de transferência controla isso (somente suportado se + xterm_clipboard aparecer quando você digitar vim --version ). No modo GUI, guioptions controla.

Isso faz com que todas as seleções do modo visual vão automaticamente para a seleção principal do X11:

set clipboard+=autoselect<br>
set guioptions+=a

Isso a desativa:

set clipboard-=autoselect<br>
set guioptions-=a

Veja: help 'clipboard' (aspas simples são necessárias).

    
por 13.06.2012 / 19:23
0

No OS X, você pode usar as ferramentas de linha de comando pbcopy / pbpaste para conseguir isso.

Por exemplo, para copiar a linha atual, execute:

:.!pbcopy "Copy current line clipboard

Para copiar o arquivo inteiro:

:!echo "%:p" | pbcopy

Ou para copiar o texto selecionado (usando o modo visual via: v / V ), digite !pbcopy depois de selecionar o texto, assim: :'<,'>!pbcopy , so copiará o texto na área de transferência.

Veja: Compartilhamento de área de transferência do Mac OS X

Para o Linux, use xclip , gpm ou algo similar .

    
por 07.06.2015 / 13:54

Tags