0

我需要在 Vim 中获取屏幕的副本。不是缓冲区、窗口、选项卡,而是整个屏幕,即如果终端大小是 80x25,那么我需要一个 2000 个字符的字符串。颜色无关紧要(不过,如果可能的话,我也很乐意拥有这些数据)。便携式解决方案(即仅 vimscript,或者可能是一些 python 技巧)是受欢迎的。

4

2 回答 2

1

ScreenShot 插件允许您将当前 Vim 视图(所有窗口拆分、状态行等,包括语法突出显示)复制为 HTML 文件。

您可能可以“降级”实现以产生简单的文本,或者将生成的 HTML 后处理为文本。

于 2013-05-17T15:48:15.860 回答
0

我不确定这是否正是您想要的,并且我不确定您一旦拥有该字符串后想对它做什么。

但这里有一个函数,它从字符串列表中的每个窗口返回可见文本。它使用w0w$行标记来提取可见范围,将范围拉到 register a,并将寄存器转储到返回的列表中。(现有的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
于 2013-05-11T08:33:18.077 回答