首页 > 解决方案 > 在不应用 foldlevel 的情况下重新计算 vim 中的折叠

问题描述

我正在尝试将 neovim 设置为 python IDE,但在进行折叠工作时遇到了一些麻烦。

我的设置:
NVIM 0.4.3
Plug 'Konfekt/FastFold'
Plug 'tmhedberg/SimpylFold'
nnoremap <space> za用空格键切换折叠

insert我的问题是,当我在模式下编辑文件时,SimpylFold 似乎没有重新计算折叠。因此,我使用插入模式添加到文件中的任何函数或类都会说E490: No fold found. 奇怪的是,如果我选择我添加的行,删除它们并撤消,那么折叠就会被正确识别。在模式中粘贴函数normal也可以正确检测到新折叠。所以这个问题似乎只在insert模式中添加行时出现。

到目前为止,这是我所知道的:

据我所知,vim 中的每一行都有一个foldlevel决定该行所属的折叠级别。例如,python 中所有未缩进的行都会有foldlevel=0,然后整个缓冲区有一个折叠级别,它决定了实际折叠的级别。 . 所以如果缓冲区foldlevel设置为 1,那么所有foldlevel1 或更多的行都将被折叠。
我用来手动切换特定折叠的za命令似乎在与所有这些foldlevel东西分开的层上操作,当zx用于重新计算折叠时,所有手动折叠/展开za都将丢失

无论如何,如果我错了,请纠正我,几周前我刚刚切换到 linux(以及 vim),所以我远非你认为的专家。

标签: vimneovimfolding

解决方案


推荐阅读