我正在寻找一种在 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 移动剩余的折叠