Wykonaj zawartość bufora jako vimscript

10

Mam nofilebufor, który zawiera vimscript i chcę go uruchomić. Jednak :so % nie będzie działać, ponieważ wymaga zapisanego pliku, a nie bufora. Czy jest domyślnie polecenie vim? Jeśli nie, to czy można stworzyć funkcję, która robi te same rzeczy?

Wiecznie zielone drzewo
źródło

Odpowiedzi:

13

Tak, możesz przeciągnąć cały bufor za pomocą ggyGlub :%yi wykonać go za pomocą :@".

W skrócie:

:%y|@"<CR>

Używane w mapowaniu:

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

Używany w elastycznym poleceniu, które domyślnie działa na całym buforze lub w opcjonalnym zakresie:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'
romainl
źródło
w pierwszym poleceniu brakuje dwukropka.
Vitor
Spowoduje to również zatarcie "rejestru. Wyobrażam sobie, że możesz użyć innego rejestru, jeśli chcesz, lub możesz po prostu zapisać "rejestr i przywrócić go później.
EvergreenTree