我需要在 Vim 中获取屏幕的副本。不是缓冲区、窗口、选项卡,而是整个屏幕,即如果终端大小是 80x25,那么我需要一个 2000 个字符的字符串。颜色无关紧要(不过,如果可能的话,我也很乐意拥有这些数据)。便携式解决方案(即仅 vimscript,或者可能是一些 python 技巧)是受欢迎的。
问问题
176 次
2 回答
1
ScreenShot 插件允许您将当前 Vim 视图(所有窗口拆分、状态行等,包括语法突出显示)复制为 HTML 文件。
您可能可以“降级”实现以产生简单的文本,或者将生成的 HTML 后处理为文本。
于 2013-05-17T15:48:15.860 回答
0
我不确定这是否正是您想要的,并且我不确定您一旦拥有该字符串后想对它做什么。
但这里有一个函数,它从字符串列表中的每个窗口返回可见文本。它使用w0
和w$
行标记来提取可见范围,将范围拉到 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 回答