在 vim 中移动到 1 级的下一个折叠

在 vim 中移动到 1 级的下一个折叠

我正在寻找一种在 C++ 代码中的函数定义之间跳转的好方法。我喜欢使用折叠来实现这一点,因为我可以使用 移动到下一个函数/方法zj,但这仅在函数内部没有嵌套折叠时才有效(例如,通过设置foldnestmax=1)。

有没有办法告诉 vim“移动到 1 级的下一个折叠”,以便我可以轻松地移动到下一个方法?

注意:我知道]m[m但这不是我想要的。我更喜欢基于折叠的解决方案。

谢谢!

答案1

您可以set foldnestmax=1暂时移至下一个折叠并将选项设置回其原始值:

:nnoremap <silent> zj :let max = &fdn<bar>let &fdn = 1<CR>zj:let &fdn=max<CR>
:nnoremap <silent> zk :let max = &fdn<bar>let &fdn = 1<CR>zk:let &fdn=max<CR>

答案2

你可以使用 zr 和/或 zm,并使用 zj 和 zk 移动剩余的折叠

相关内容