Como selecionar o arquivo completo no vi, para ser colado no gedit?

5

Eu sei que fazer %y a irá arrancar o arquivo completo no registro a . No entanto, isso não ajuda a colar o conteúdo do arquivo em outro editor de texto (digamos, gedit). Que alternativa existe para isso?

    
por user13107 15.03.2013 / 04:26

6 respostas

8

Não tenho certeza se vi é necessário para esta operação.

Existe o utilitário xclip que permite copiar qualquer coisa da saída do console para a área de transferência do servidor x.

Você deve especificar DISPLAY=:0.0 environment e executá-lo da seguinte forma:

cat file | xclip

ou para arquivo remoto

ssh remote "cat file" | xclip

Ou a partir de vi (note que desta forma irá temporariamente limpar o conteúdo do buffer vi, para revogá-lo pressione Esc + u , os dados ficarão no X cilpboard):

:%!xclip

Agora você pode colá-lo em qualquer lugar com o botão do meio do mouse (observe que CTRL+V ou shift+ins não funcionam).

    
por 15.03.2013 / 07:29
10

Em vez de pegar o a register yank no * ou + register para arrancar o conteúdo do arquivo na área de transferência X usando um dos seguintes:

:%y*
:%y+

Isso requer que você esteja usando uma cópia do vim que tenha suporte para X compilado e é capaz de se conectar ao seu servidor X. Qual dessas obras melhor para você dependerá de qual tipo de área de transferência o editor de destino usa.

Você pode até ter um desses registros usados como padrão para copiar e colar operações incluindo um dos seguintes no seu arquivo .vimrc :

set clipboard+=unnamed
set clipboard+=unnamedplus
    
por 15.03.2013 / 04:51
1

Se você está regularmente encontrando a necessidade de usar o Vim e o gedit juntos, você provavelmente deve mudar para o gVim, a versão GUI do Vim.

Parece que você está usando o Ubuntu, onde o gVim não é instalado por padrão. Use este comando para obtê-lo:

 $ sudo apt-get install vim-gnome

Há também vim-gtk que não depende do Gnome, mas como você está usando o gedit, você deve estar usando uma das versões baseadas no Gnome do Ubuntu.

    
por 15.03.2013 / 14:57
0

Talvez tente,

behave mswin ,

E use ^C / ^V para copiar e colar o conteúdo, não tenho certeza se é isso que você queria

    
por 15.03.2013 / 07:53
0

Eu resolvi isso adicionando o seguinte alias ao meu .bashrc

alias vim='gvim -v'

e em .vimrc defina a área de transferência como unnamedplus

set clipboard=unnamedplus

Em seguida, o texto ed é copiado para o buffer global e pode ser colado em gedit com ctrl + v. Texto copiado globalmente também pode ser colado usando o comando vim p

    
por 15.03.2013 / 14:55
0

No modo normal, ggvG$ selecionará todo o texto e o salvará no "* register, então vá para o gedit e clique no meio do mouse, o texto estará lá.

    
por 08.04.2013 / 10:51