gpt4 book ai didi

Vim 折叠没有结束标记

转载 作者:行者123 更新时间:2023-12-04 20:36:36 31 4
gpt4 key购买 nike

我想在开始标记之间折叠文本,例如:

//// Block 1

... some code 1 ...

//// Block 2

... some code 2 ...

哪里 ////将用作开始标记和折叠 //// Block 1将折叠到 //// Block 2 之前的行.

这是可能的吗?

不喜欢我设置 foldmarker没有结束参数,如果我使用 ////,它会折叠太多作为开始和结束标记。

我可以用 zf 手动创建折叠,但这些是文件相关的,如果你改变它就会中断。

最佳答案

您可以像这样编写自己的折叠表达式:

function! BlockFolds()
let thisline = getline(v:lnum)
if match(thisline, '^\/\/\/\/ Block') >= 0
return ">1"
else
return "="
endif
endfunction

setlocal foldmethod=expr
setlocal foldexpr=BlockFolds()

如果您在 vim 中使用它,您将获得所需的效果:

demo

显然你可以在你的 .vimrc 中找到它。或基于文件扩展名。
您可以在此处了解自定义折叠表达式的工作原理: http://vimcasts.org/episodes/writing-a-custom-fold-expression/

关于Vim 折叠没有结束标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373627/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com