Eseguire il contenuto del buffer come vimscript


10

Ho un nofilebuffer che contiene vimscript e voglio eseguirlo. Tuttavia, :so % non funzionerà perché richiede un file salvato, non un buffer. Esiste un comando vim per farlo di default? In caso contrario, è possibile creare una funzione che fa le stesse cose?

Risposte:


13

Sì, è possibile strappare l'intero buffer con ggyGo :%yed eseguirlo con :@".

In breve:

:%y|@"<CR>

Utilizzato in una mappatura:

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

Utilizzato in un comando flessibile che funziona sull'intero buffer per impostazione predefinita o su un intervallo opzionale:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'

hai due punti mancanti nel primo comando.
Vitor

Inoltre, ciò blocca il "registro. Immagino che potresti usare un altro registro se lo desideri, oppure potresti semplicemente salvare il "registro e ripristinarlo in seguito.
EvergreenTree
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.