Ejecutar contenido del búfer como vimscript

10

Tengo un nofilebúfer que contiene vimscript y quiero ejecutarlo. Sin embargo, :so % no funcionará porque requiere un archivo guardado, no un búfer. ¿Hay un comando vim para hacer esto por defecto? Si no, ¿es posible crear una función que haga lo mismo?

Árbol de hoja perenne
fuente

Respuestas:

13

Sí, puede tirar de todo el búfer con ggyGo :%yy ejecutarlo con :@".

En breve:

:%y|@"<CR>

Utilizado en un mapeo:

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

Se usa en un comando flexible que funciona en todo el búfer de forma predeterminada o en un rango opcional:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'
romainl
fuente
le faltan dos puntos en el primer comando.
Vitor
Además, esto golpea el "registro. Me imagino que podría usar otro registro si quisiera, o simplemente podría guardar el "registro y restaurarlo después.
EvergreenTree