Tentei colar algum conteúdo (no Git Bash no servidor CentOS) em um arquivo usando o vim.
Acabei de abrir o arquivo e tentei usar shift+ inserte notei que a primeira metade (aproximadamente) foi cortada, mas se eu definir o vim para o modo de inserção e pressionar shift+ inserttudo será colado perfeitamente.
Estava me perguntando por que isso acontece?
Obrigado
Responder1
Ambos Shift+ Inserte "colando"em um terminal se comportam de maneira semelhante - eles emulam o pressionamento de teclas.
Esta é uma distinção importante que muitas vezes é impossível para os terminais fazerem - você está digitando ou colando?Observação: alguns terminais suportam "pasta entre colchetes"modos, depois do comentário de @Josh eu até me deparei com umplug-in vimcolar entre colchetestermo xno qual você pode estar interessado.
Seus dados colados serão perdidos até o primeiro caractere que entrar no modo de inserção. Você também pode descobrir que o cursor se moveu e que outras partes do arquivo foram alteradas (por exemplo: alterou maiúsculas/minúsculas/foi excluída/etc)...
Em resumo, se você estiver colando o texto que deseja inserir no arquivo, entre primeiro no modo de inserção.
Tente copiar o seguinte texto e colá-lo em um terminal executando o Vim (não no modo de inserção):
hello how are you
O resultado é o mesmo que digitar as mesmas letras no teclado:
Nesse caso, você fica no modo de inserção...
Agora tente sair do modo de inserção - Esc- e colar o seguinte
/are
n
Isso realiza uma pesquisa por "são":
Agora cole isto:
:0
dG
Ah, não... tudo se foi!
Você também descobrirá que, se tiver o recuo ativado, colar um bloco de código no vim (no modo de inserção) recuará demais - ele recuará automaticamente e, em seguida, seu código colado incluirá o recuo.
def my_print(message):
print(message)
print('done...')
Para corrigir isso, use os comandos :set paste
e:set nopaste