Vim中foldmethod为syntax时,如何不修改默认设置实现手动折叠?
解决Vim syntax折叠模式下手动折叠的问题
可以在不修改默认foldmethod=syntax的前提下实现手动折叠,核心是利用Vim的临时折叠叠加功能,具体操作如下:
临时切换到手动折叠模式:在Vim命令行执行
:set foldmethod=manual foldexpr= foldtext=这一步不会覆盖原本的syntax折叠配置,只是临时启用手动折叠能力。
可视化选中需要折叠的#ifdef代码段,执行
zf命令完成手动折叠。切回原有的syntax折叠模式:执行
:set foldmethod=syntax此时手动创建的折叠会和syntax折叠共存,互不干扰。
为了操作更高效,还可以将这两个命令映射为快捷键,在你的.vimrc中添加如下配置:
nnoremap <leader>zm :set foldmethod=manual foldexpr= foldtext=<CR> nnoremap <leader>zs :set foldmethod=syntax<CR>
之后按<leader>zm就能快速切换到临时手动折叠模式,完成折叠后按<leader>zs切回即可。
如果需要永久保存手动折叠的状态,可以执行:mkview保存当前视图,下次打开文件时用:loadview恢复折叠状态。
内容的提问来源于stack exchange,提问作者raving_sage
相关产品推荐
相关产品推荐

