Виконати вміст буфера як 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.