VIM comentando o que eu colo

13

Eu tenho isso ao tentar copiar essa essência no vim: link

Eu observo o mesmo comportamento em todos os lugares: se eu colar algo que inclua um comentário, tudo o que se segue ao comentário é colado comentado.

Talvez tenha algo a ver com o fato de que, se eu escrever um comentário no modo de inserção e pressionar Enter, a seguinte linha anexará automaticamente um comentário.

Como posso me livrar desse comportamento?

    
por jviotti 27.07.2013 / 16:55

5 respostas

24

Insira o modo de colagem antes de colar:

:set paste

Para voltar ao modo "normal":

:set nopaste
    
por 27.07.2013 / 16:59
11

Além da opção paste mencionada por Mat , você também pode acessar diretamente a área de transferência X do VIM:

  • "*p para inserir a seleção X11
  • "+p para inserir a área de transferência X11

Você precisa de uma versão VIM com suporte a X11 (no Debian e seus derivados você precisa instalar o pacote vim-gtk ou vim-gnome ).

Para mais informações, consulte a documentação ( :help x11-selection ).

    
por 27.07.2013 / 17:33
5

Veja o que está acontecendo. Existem opções de formatação do Vim que comentam automaticamente novas linhas quando você está em uma linha de comentário. Algumas dessas opções geralmente são ativadas por padrão. Por exemplo,

# a comment<CR>
# 

Como você pode ver, a nova linha foi adicionada automaticamente com um caractere de comentário. Você pode desativar a maioria dessas opções removendo c e r da configuração formatoptions . Veja :h fo-table para mais informações sobre essas opções.

:set formatoptions-=cr

O Vim não tem como diferenciar entre o texto que é colado com os mecanismos de colagem do emulador de terminal e o texto que você digita. Definir as opções de colagem ( set paste ) diz ao Vim para esperar texto colado e desabilitar quaisquer opções de formatação que seriam indesejáveis.

    
por 27.07.2013 / 17:48
2

Meu favorito é usar o comando put .

  • :put* colar da seleção na linha atual
  • :put+ colar do buffer na linha atual

"*p / "+p também é bom, mas :pu[t] tem algumas vantagens:

  • sempre cola linewise
  • você pode adicionar um parâmetro adicional para controlar onde inserir:
    • :$put+ colar depois da última linha
    • :0put+ colar no início do arquivo
por 27.07.2013 / 21:48
1

Como resposta paralela, se você tiver algum arquivo que tenha isso em você, você pode se livrar dele entrando no modo de bloqueio visual vertical

ctrl + v e, em seguida, usando as teclas de seta / hjkl para navegar pelas partes que você deseja excluir e, em seguida, pressionando d

Às vezes, acho isso mais rápido do que desfazer a configuração do modo de colar, colando e desativando o modo de colagem.

    
por 28.07.2013 / 15:20

Tags