Por que a inserção de mudança funciona somente no modo de inserção?

13

Apenas tentei colar algum conteúdo (no Git Bash no servidor CentOS) em um arquivo usando o vim.
Eu apenas abri o arquivo e tentei usar shift + insert e notei que a primeira metade (aproximadamente) é cortada, mas se eu definir o vim para inserir o modo e apertar < kbd> shift + inserir tudo é colado na perfeição.
Estava apenas se perguntando por que isso acontece?

Obrigado

    
por ThisGuyHasTwoThumbs 07.03.2018 / 11:40

1 resposta

24

Tanto o Shift + Insira e " colando " em um terminal se comportam de maneira similar - eles emulam pressionamentos de teclas.

Esta é uma distinção importante que muitas vezes é impossível para os terminais: você está digitando ou colando? Nota : alguns terminais suportam os modos " colar em parênteses ", depois do comentário do @ Josh eu até encontrei um plugin vim colado entre xterm que você pode estar interessado.

Seus dados colados serão perdidos até o primeiro caractere que entrar em um modo de inserção. Você também pode descobrir que seu cursor foi movido e que outras partes do arquivo foram alteradas (por exemplo: caso alterado / excluído / etc) ...

Em resumo, se você estiver colando o texto que deseja inserir no arquivo, insira o modo de inserção primeiro.

Tente copiar o texto a seguir e cole-o em um terminal que esteja 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:

Nestecaso,deixavocênomododeinserção...

Agoratentesairdomododeinserção-Esc-ecoleoseguinte

/aren

Issofazumapesquisapor"are":

Agoracoleisto:

:0dG

Ohnão...tudosefoi!

Vocêtambémdescobriráque,setiverorecuoativado,acolagemdeumblocodecódigonovim(nomododeinserção)serárecuadademais.Issofaráorecuoautomáticoeseucódigocoladoincluirárecuo.

defmy_print(message):print(message)print('done...')

Paracorrigirisso,useoscomandos:setpastee:setnopaste

    
por 07.03.2018 / 12:01

Tags