Ich möchte eine schnelle Möglichkeit haben, die Vim- 'paste'
Option festzulegen, Text einzufügen und zum vorherigen Wert von zurückzukehren 'paste'
.
Ein typischer Anwendungsfall: Fügen Sie den Inhalt der Zwischenablage des Betriebssystems buchstäblich ein, unabhängig davon, ob der Einfügemodus möglicherweise neu geschrieben wird, z. B. durch automatisches Einrücken, und ohne den Status von Vim zu ändern. Ein weiterer Anwendungsfall wäre, einem Betriebssystemmakro zu erlauben, Tastenanschläge in Vim einzufügen und sie als wörtlichen Text interpretieren zu lassen.
Dies verallgemeinert sich offensichtlich auf andere Optionen - die allgemeine Idee ist, einige Optionen festzulegen, jedoch nur für die Dauer einer Reise durch den Einfügemodus.
Grundsätzlich möchte ich eine Tastensequenz (etwa _i
) an ein Makro binden , das dies ausführt
:set paste
i…<Esc>
:set nopaste
Wobei i…<Esc>
ich damit meine, in den Einfügemodus zu wechseln (wie beim i
Befehl) und das Makro bei Rückkehr in den Befehlsmodus fortzusetzen, mit der Ausnahme, dass ich am Ende 'paste'
immer noch aktiv sein möchte, wenn es zuvor aktiv war. Wie kann ich das machen?
Hinweis: Der Inhalt der Zwischenablage des Betriebssystems wird dem "*
Register zugeordnet . Wenn das funktioniert, ist die 'paste'
Option nicht sehr nützlich. Das motivierende Szenario für diese Frage ist, wenn die Bedingungen für die "*
Registerunterstützung nicht erfüllt sind - Vim ist nicht mit der +xterm_clipboard
Funktion kompiliert oder wird in einem Terminal wie Screen oder über SSH ausgeführt, das es vom Ambient X-Server isoliert.
+
oder zu*
registrieren?