Führen Sie den Inhalt des Puffers als Vimscript aus

10

Ich habe einen nofilePuffer, der Vimscript enthält, und ich möchte ihn ausführen. Funktioniert jedoch :so % nicht, da eine gespeicherte Datei und kein Puffer erforderlich ist. Gibt es einen vim-Befehl, um dies standardmäßig zu tun? Wenn nicht, ist es möglich, eine Funktion zu erstellen, die die gleichen Aktionen ausführt?

Immergrüner Baum
quelle

Antworten:

13

Ja, Sie können den gesamten Puffer mit ggyGoder ziehen :%yund mit ausführen :@".

Zusamenfassend:

:%y|@"<CR>

Wird in einem Mapping verwendet:

nnoremap <key> :%y|@"<CR>

Wird in einem flexiblen Befehl verwendet, der standardmäßig für den gesamten Puffer oder in einem optionalen Bereich verwendet wird:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'
romainl
quelle
Sie haben einen fehlenden Doppelpunkt im ersten Befehl.
Vitor
Dies verstopft auch das "Register. Ich stelle mir vor, Sie könnten ein anderes Register verwenden, wenn Sie möchten, oder Sie könnten das "Register einfach speichern und anschließend wiederherstellen.
EvergreenTree