能否配置已有语法的折叠规则?以C/C++及ASM为例
自定义语法折叠配置方法
当然可以配置已有语法的折叠方式,以下以两款常用编辑器为例说明具体配置方法:
C/C++ 调整{}折叠为类似Pascal的显示风格
VS Code
直接修改settings.json,添加以下配置:
"[cpp]": { "editor.foldingStrategy": "indentation", "editor.foldBackground": true, "editor.folding": { "markers": { "start": "\\{", "end": "\\}" } }, "editor.foldPreview": true }
开启折叠预览后,{}块折叠后会显示为void fun() {..}这类样式。
Vim
在.vimrc中添加以下配置:
set foldmethod=syntax set foldtext=getline(v:foldstart).' {..}'.getline(v:foldend)[-1:] set foldenable
配置完成后,C/C++代码里的{}块折叠后会展示起始行内容加{..}和结尾的}。
ASM 配置proc/endp块的折叠规则
VS Code
确保已安装ASM相关语法扩展(如MASM x86),然后修改settings.json添加自定义折叠规则:
"[asm]": { "editor.foldingStrategy": "markers", "editor.folding": { "markers": { "start": "^\\s*\\w+\\s+proc", "end": "^\\s*\\w+\\s+endp" } }, "editor.foldPreview": true, "editor.foldText": "${start} .. ${end}" }
这样fun proc到fun endp的代码块折叠后会显示为fun proc .. fun endp。
Vim
在.vimrc中为ASM语法添加折叠配置:
autocmd FileType asm set foldmethod=marker autocmd FileType asm set foldmarker=proc,endp autocmd FileType asm set foldtext=getline(v:foldstart).' .. '.getline(v:foldend) set foldenable
配置后,ASM中的过程块会自动折叠,折叠后展示起始行与结束行内容的拼接样式。
内容的提问来源于stack exchange,提问作者mantissa
相关产品推荐
相关产品推荐

