vim 暂时禁用foldclose=all

vs3odd8k  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(174)

我当前的vim配置设置为自动关闭折叠,一旦光标移出它们的区域:

set foldmethod=syntax
set foldclose=all

这真的很好。因此,我经常觉得需要同时关注两个不同的折叠部分 (即:不同位置的两个if语句)
不幸的是,考虑到通过将光标移出第一个if子句将使前一个子句立即关闭的事实,将foldclose设置为all时,上述操作变得不可能。
有没有什么方法可以临时标记该折叠,以便在我检查两个子句和一个完成的子句时,它不会受到foldclose=all的影响,我可以简单地删除该阻塞标记,以便它会恢复正常?
我认为syntax方法对我来说很有用,因为它通常是我在处理特定于语言的折叠时所寻找的。

iibxawm4

iibxawm41#

据我所知,这是不可能的。
然而,你可以通过分割窗口(:split)来作弊。这允许光标在每个窗口中处于不同的位置,所以你可以在每个窗口中打开不同的折叠。

hjzp0vay

hjzp0vay2#

您只需要将foldclose选项临时设置为nothing,然后再次将其设置为all
因此,在文档中的任意位置键入:

:set foldclose=<CR>

=之后无内容)
然后,您可以打开要处理的折叠,完成后,只需使用以下命令将该选项设置回:

:set foldclose=all<CR>

额外费用:

如果您要手动弃牌,我建议您使用以下选项:

set foldcolumn=1   " Or 2, 3, ...

,以提供折迭开始和结束位置的视觉辅助,以及文件左边距(靠近行号栏)的折迭深度层级。
Image of my current _vimrc file

相关问题