将缓冲区内容作为vimscript执行


10

我有一个nofile包含vimscript 的缓冲区,我想执行它。但是,:so % 由于它需要保存的文件而不是缓冲区,因此将不起作用。默认情况下有vim命令执行此操作吗?如果不是,是否可以创建一个执行相同功能的函数?

Answers:


13

是的,您可以使用ggyG或提取整个缓冲区,:%y然后使用执行:@"

简而言之:

:%y|@"<CR>

用于映射:

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

在默认情况下或可选范围内可在整个缓冲区上使用的灵活命令中使用:

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

您在第一个命令中缺少一个冒号。
Vitor

同样,这确实破坏了"寄存器。我想如果您愿意,您可以使用另一个寄存器,或者可以保存该"寄存器并随后将其还原。
EvergreenTree
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.