VIM comentando o que colo

14

Eu consegui isso ao tentar copiar esta essência no vim: https://gist.github.com/w0ng/3278077

insira a descrição da imagem aqui

Percebo o mesmo comportamento em todos os lugares: se eu colar algo que inclua um comentário, tudo o que segue o comentário será colado.

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 linha a seguir anexa automaticamente um comentário.

Como posso me livrar desse comportamento?

jviotti
fonte

Respostas:

26

Entre no modo de colagem antes de colar:

:set paste

Para voltar ao modo "normal":

:set nopaste
Esteira
fonte
6
ou: definir colar! para alternar :)
valbaca
@valbaca Você pode usar backticks para criar code blockscomentários
Izkata 27/13/13
Eu precisava desses comandos ao contrário!
11

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

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

Você precisa de uma versão VIM com suporte X11 (em Debian e seus derivados é necessário instalar o vim-gtkou vim-gnomepacote).

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

jofel
fonte
6

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

# a comment<CR>
# 

Como você pode ver, a nova linha foi anexada automaticamente com um caractere de comentário. Você pode desativar a maioria dessas opções removendo ce rda configuração formatoptions. Veja :h fo-tablepara mais informações sobre essas opções.

:set formatoptions-=cr

O Vim não tem como diferenciar texto colado com os mecanismos de colagem do emulador de terminal e texto digitado. Definir as opções de colagem ( set paste) informa ao Vim que espere o texto colado e desative as opções de formatação que seriam indesejáveis.


fonte
3

O meu favorito é usar o putcomando

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

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

  • sempre cola na linha
  • você pode adicionar um parâmetro adicional para controlar onde inserir:
    • :$put+ colar após a última linha
    • :0put+ cole no início do arquivo
defhlt
fonte
1

Como resposta lateral, se você tiver algum arquivo com isso, pode se livrar dele entrando no modo de bloqueio Visual Vertical

ctrl+ ve, em seguida, use as teclas de seta / hjkl para navegar pelas partes que você deseja excluir e depois apenas pressionandod

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

exussum
fonte