如何让Vim支持GEDCOM文件的折叠功能?
实现GEDCOM文件的层级折叠Vim配置
没问题,我来帮你搞定这个Vim折叠需求!针对GEDCOM文件那种以0、1、2开头的层级结构,只需要几行Vim脚本就能让Vim自动识别行首的层级编号,把它设为对应行的foldlevel,这样你用zM就能只显示层级0的行,完美适配GEDCOM的格式。
具体配置代码
把下面这段代码加到你的~/.vimrc(或者~/.config/nvim/init.vim如果你用Neovim)里:
" 针对GEDCOM文件设置自动层级折叠 autocmd FileType ged setlocal foldmethod=expr autocmd FileType ged setlocal foldexpr=str2nr(matchstr(getline('.'), '^\d\+')) autocmd FileType ged setlocal foldenable autocmd FileType ged setlocal foldcolumn=1
代码解释
autocmd FileType ged:当打开后缀为.ged的GEDCOM文件时触发这些配置foldmethod=expr:告诉Vim我们要通过表达式来计算每一行的折叠层级foldexpr=str2nr(matchstr(getline('.'), '^\d\+')):核心逻辑——提取当前行开头的数字(matchstr(getline('.'), '^\d\+')),再转成整数(str2nr)作为这一行的foldlevelfoldenable:默认开启折叠功能foldcolumn=1:在左侧显示1列的折叠标识,方便直观看到层级结构
使用方法
打开你的GEDCOM文件后:
- 输入
zM:折叠所有层级,只显示开头为0的行 - 输入
zR:展开所有层级,显示全部内容 - 输入
zo:打开当前光标所在的折叠 - 输入
zc:关闭当前光标所在的折叠
内容的提问来源于stack exchange,提问作者user19235
相关产品推荐
相关产品推荐

