Executar conteúdo do buffer como vimscript

10

Eu tenho um nofilebuffer que contém vimscript e desejo executá-lo. No entanto, :so % não funcionará porque requer um arquivo salvo, não um buffer. Existe um comando vim para fazer isso por padrão? Caso contrário, é possível criar uma função que faça as mesmas coisas?

EvergreenTree
fonte

Respostas:

13

Sim, você pode puxar o buffer inteiro com ggyGou :%ye executá-lo com :@".

Em resumo:

:%y|@"<CR>

Usado em um mapeamento:

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

Usado em um comando flexível que funciona em todo o buffer por padrão ou em um intervalo opcional:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'
romainl
fonte
você tem dois pontos ausentes no primeiro comando.
Vitor
Além disso, isso atrapalha o "registro. Eu imagino que você poderia usar outro registro, se quisesse, ou você poderia simplesmente salvar o "registro e restaurá-lo posteriormente.
EvergreenTree