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?

Respostas:


26

Entre no modo de colagem antes de colar:

:set paste

Para voltar ao modo "normal":

:set nopaste

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).


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.


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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.