我需要在Vim中获得一个屏幕副本。不是缓冲区,窗口,标签,而是整个屏幕,即如果终端大小是80x25,那么我需要一个2000个字符的字符串。颜色并不重要(但是,如果有可能的话,我也很乐意拥有这些数据)。便携式解决方案(即仅限vimscript,或者可能是一些python技巧)是受欢迎的。
答案 0 :(得分:1)
ScreenShot plugin允许您将当前Vim视图(所有窗口拆分,状态行等,包括语法突出显示)的副本复制为HTML文件。
您可以“降级”实现以生成简单文本,或将生成的HTML后处理为文本。
答案 1 :(得分:0)
我不确定这是不是你想要的,而且我不确定一旦你拥有它你想用它做什么。
但这是一个函数,它返回字符串列表中每个窗口的可见文本。它使用w0
和w$
行标记来提取可见范围,将范围拉到注册a
,并将寄存器转储到返回的列表中。 (最后保存并恢复现有的寄存器。)
function! WindowStrings()
let areg = getreg('a')
let atype = getregtype('a')
let strings = []
windo exe ':' . line("w0") . ',' . line("w$") . 'yank a' |
\ call add(strings,getreg('a'))
call setreg('a',areg,atype)
return strings
endfunction