You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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)作为这一行的foldlevel
  • foldenable:默认开启折叠功能
  • foldcolumn=1:在左侧显示1列的折叠标识,方便直观看到层级结构

使用方法

打开你的GEDCOM文件后:

  • 输入zM:折叠所有层级,只显示开头为0的行
  • 输入zR:展开所有层级,显示全部内容
  • 输入zo:打开当前光标所在的折叠
  • 输入zc:关闭当前光标所在的折叠

内容的提问来源于stack exchange,提问作者user19235

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:13:44