Выполнить содержимое буфера как vimscript


10

У меня есть nofileбуфер, который содержит vimscript, и я хочу его выполнить. Однако, :so % это не будет работать, потому что для этого требуется сохраненный файл, а не буфер. Есть ли команда vim, чтобы сделать это по умолчанию? Если нет, то возможно ли создать функцию, которая делает то же самое?

Ответы:


13

Да, вы можете восстановить весь буфер с помощью ggyGили :%yи выполнить его с помощью :@".

Короче говоря:

:%y|@"<CR>

Используется в отображении:

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

Используется в гибкой команде, которая работает со всем буфером по умолчанию или в необязательном диапазоне:

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

у вас пропущено двоеточие в первой команде.
Витор

Кроме того, это забивает "регистр. Я полагаю, что вы можете использовать другой регистр, если хотите, или вы можете просто сохранить "регистр и восстановить его впоследствии.
EvergreenTree
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.