Sowohl Shift+ Insertals auch " Einfügen " in ein Terminal verhalten sich ähnlich - sie emulieren Tastendrücke.
Dies ist eine wichtige Unterscheidung, die für Terminals häufig nicht möglich ist - tippen Sie oder fügen Sie ein? Hinweis : Einige Terminals unterstützen " Bracketed Paste " -Modi. Nach @ Joshs Kommentar bin ich sogar auf ein VIM-Plugin gestoßen, das in xterm- Klammern eingefügt ist das Sie vielleicht interessiert.
Ihre eingefügten Daten gehen bis zum ersten Zeichen verloren, das in den Einfügemodus wechselt. Möglicherweise stellen Sie auch fest, dass sich Ihr Cursor bewegt hat und dass sich andere Teile der Datei geändert haben (z. B. Groß- / Kleinschreibung geändert / gelöscht / usw.) ...
Wenn Sie zusammenfassend Text einfügen, den Sie in die Datei einfügen möchten, rufen Sie zuerst den Einfügemodus auf.
Kopieren Sie den folgenden Text und fügen Sie ihn in ein Terminal ein, auf dem Vim ausgeführt wird (nicht im Einfügemodus):
hello how are you
Das Ergebnis entspricht dem Eingeben der gleichen Buchstaben auf Ihrer Tastatur:
In diesem Fall bleiben Sie im Einfügemodus ...
Verlassen Sie nun den Einfügemodus - Esc- und fügen Sie Folgendes ein
/are
n
Dies führt eine Suche nach "are" durch:
Fügen Sie nun Folgendes ein:
:0
dG
Oh nein ... alles ist weg!
Wenn Sie das Einrücken aktiviert haben, wird beim Einfügen eines Codeblocks in vim (im Einfügemodus) zu viel eingerückt - es wird automatisch eingerückt, und der eingefügte Code wird eingerückt.
def my_print(message):
print(message)
print('done...')
Um dies zu beheben, verwenden Sie die Befehle :set paste
und:set nopaste