4

我写了一个描述 vim 折叠的博客。所以我需要这样的代码。

+-- 15 lines: set_up_socket_dir () {--------------------------------------------

但是当我拉线时,实际上拉了折叠的代码。我怎样才能从 vim 得到那条线。

4

3 回答 3

5

您可能想查看一个 vim 函数:

:h foldclosed(

你可以用这个函数写一个:g命令行:

:g/^/if line('.')==foldclosed('.') || foldclosed('.')==-1|y Z |endif

所以你的工作流程是:

qzq 清除寄存器z

...visual select lines...

'<,'>g/^/if line('.')==foldclosed('.') || foldclosed('.')==-1|y Z |endif

"zp做粘贴

如果您经常使用它,您可以创建一个映射或命令。

它的工作原理如下:

在此处输入图像描述

于 2013-02-27T10:36:45.213 回答
3

要呈现在 Vim 中看到的缓冲区/范围(包括语法高亮和折叠),可以使用内置:TOhtml命令。这将为您提供 HTML。对于整个窗口布局,有ScreenShot 插件

如果你只想要纯文本,我会启动控制台 Vim,用鼠标选择整个内容,然后使用终端的复制功能将选择复制到系统的剪贴板。(我相信您也可以使用screentmux来做到这一点。)

于 2013-02-27T10:17:08.803 回答
3

IIUC,你想复制封闭的折叠文本标题。您可以通过无模式选择来做到这一点(请参阅 参考资料:help modeless-selection)。Ctrl用+标记文本Shift

于 2013-02-27T10:19:02.707 回答