Sia Shift+ Insertche " incollare " in un terminale si comportano in modo simile: emulano le pressioni dei tasti.
Questa è una distinzione importante che è spesso impossibile per i terminali - stai scrivendo o incollando? Nota : alcuni terminali supportano le modalità di " bracketing paste ", dopo il commento di @ Josh mi sono persino imbattuto in un plug-in vim tra parentesi incolla in xterm che potrebbe interessarti.
I dati incollati andranno persi fino al primo carattere che entra in una modalità di inserimento. Potresti anche scoprire che il cursore si è spostato e che altre parti del file sono cambiate (ad esempio: caso modificato / stato eliminato / ecc.) ...
In breve, se si incolla il testo che si desidera inserire nel file, inserire prima la modalità di inserimento.
Prova a copiare il seguente testo e incollalo in un terminale che esegue Vim (non in modalità inserimento):
hello how are you
Il risultato è lo stesso che digitare le stesse lettere sulla tastiera:
In questo caso, ti lascia in modalità inserimento ...
Ora prova a uscire dalla modalità di inserimento - Esc- e incolla quanto segue
/are
n
Questo esegue una ricerca di "are":
Ora incolla questo:
:0
dG
Oh no ... tutto è finito!
Scoprirai anche che se hai abilitato il rientro, incollare un blocco di codice in vim (in modalità inserimento) farà rientrare troppo - indenterà automaticamente, e quindi il tuo codice incollato includerà il rientro.
def my_print(message):
print(message)
print('done...')
Per risolvere questo problema, utilizzare i comandi :set paste
e:set nopaste