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?

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|@"'

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.