我写了一个描述 vim 折叠的博客。所以我需要这样的代码。
+-- 15 lines: set_up_socket_dir () {--------------------------------------------
但是当我拉线时,实际上拉了折叠的代码。我怎样才能从 vim 得到那条线。
您可能想查看一个 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
做粘贴
如果您经常使用它,您可以创建一个映射或命令。
它的工作原理如下:
要呈现在 Vim 中看到的缓冲区/范围(包括语法高亮和折叠),可以使用内置:TOhtml
命令。这将为您提供 HTML。对于整个窗口布局,有ScreenShot 插件。
如果你只想要纯文本,我会启动控制台 Vim,用鼠标选择整个内容,然后使用终端的复制功能将选择复制到系统的剪贴板。(我相信您也可以使用screen或tmux来做到这一点。)
IIUC,你想复制封闭的折叠文本标题。您可以通过无模式选择来做到这一点(请参阅 参考资料:help modeless-selection
)。Ctrl用+标记文本Shift。