Vim quer escrever em um bloco

3

Eu tenho este arquivo

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
~                                                                                                                                     
~   

Eu quero inserir uma descrição (copiar e colar) em um bloco após o dvb-apps: então resultar assim

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps:
dvb-apps:

Se eu usar o colar padrão do console, obtenho

dvb-apps: Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla
dvb-apps:
dvb-apps:
dvb-apps:

Como colar em um bloco?

    
por elbarna 22.03.2015 / 23:54

3 respostas

4

Copie o conteúdo para o seu documento no vim, presumivelmente com o botão do meio do mouse no X, usando o modo de inserção, mas em linhas separadas.

Em seguida, vá para a primeira coluna da primeira das linhas recém-inseridas e entre no modo de bloco visual CTRL+v , onde poderá selecionar o conteúdo. O único problema aqui pode ser comprimentos de linha diferentes que às vezes dificultam a seleção de todo o conteúdo no bloco visual. Pode ser necessário adicionar alguns espaços em branco à última linha para poder selecionar todas as colunas de todas as linhas.

Depois de ter feito isso, pressione d para excluir, navegue até a coluna correta da primeira linha de destino e cole com p .

Alternativamente, fazer a tarefa, mas não uma solução real para sua pergunta, pedir para fazer isso no vim, seria criar dois arquivos separados:

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
~       

e






Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla


~

e, em seguida, use

paste <FILE1> <FILE2> > <OUTPUTFILE>

para juntar os dois arquivos.

    
por 23.03.2015 / 00:07
3

Com o meu plug-in UnconditionalPaste , você pode forçar a colagem a ser blockwise , que é o que você quer aqui. Portanto, em vez de inserir o modo de inserção e colar com o botão do meio do mouse (que, suponho, você tenha feito), use o "* register junto com o mapeamento gbp do plug-in.

    
por 23.03.2015 / 09:03
2

Se você tiver xclip ( sudo apt-get install xclip ou similar), poderá acessar a área de transferência do sistema (ou seja, Xorg) na linha de comando, usando xclip -o . Dessa forma, você pode !paste - <(xclip -o) ou definir um mapeamento de chave (por exemplo <LEADER>p ) como:

:map <LEADER>p .,$!paste - <(xclip -o)<NL>

e use <LEADER>p para colar o conteúdo atual do clipboad do X.

<LEADER> é padronizado para \ (portanto, no exemplo acima, \p executará o comando paste), mas pode ser alterado para qualquer coisa, - , por exemplo, por :let mapleader="-" .

    
por 23.03.2015 / 13:29

Tags