这是生成 Markdown 大纲的 vim 脚本:
fun! TOC()
call setloclist(0, [])
let save_cursor = getpos(".")
call cursor(1, 1)
while search("^#", 'W') > 0
let msg = printf('%s:%d:%s', expand('%'), line('.'), substitute(getline('.'), '#', '»', 'g'))
laddexpr msg
endwhile
call setpos('.', save_cursor)
endfun
com! -bar TOC call TOC()
示例 Markdown 文件:https://github.com/progit/progit/raw/master/zh/01-introduction/01-chapter1.markdown
运行后
:TOC
命令,这是快速列表:01-chapter1.markdown|5| »» 关于版本控制 »»
01-chapter1.markdown|11| »»» 本地版本控制系统 »»»
01-chapter1.markdown|22| »»» 集中化的版本控制系统 »»»
01-chapter1.markdown|33| »»» 分布式版本控制系统 »»»
01-chapter1.markdown|42| »» Git 简史 »»
01-chapter1.markdown|56| »» Git 基础 »»
01-chapter1.markdown|60| »»» 直接记录快照,而非差异比较 »»»
01-chapter1.markdown|74| »»» 近乎所有操作都是本地执行 »»»
01-chapter1.markdown|82| »»» 时刻保持数据完整性 »»»
01-chapter1.markdown|92| »»» 多数操作仅添加数据 »»»
01-chapter1.markdown|98| »»» 文件的三种状态 »»»
01-chapter1.markdown|121| »» 安装 Git »»
01-chapter1.markdown|125| »»» 从源代码安装 »»»
01-chapter1.markdown|152| »»» 在 Linux 上安装 »»»
01-chapter1.markdown|162| »»» 在 Mac 上安装 »»»
01-chapter1.markdown|177| »»» 在 Windows 上安装 »»»
01-chapter1.markdown|185| »» 初次运行 Git 前的配置 »»
01-chapter1.markdown|197| »»» 用户信息 »»»
01-chapter1.markdown|206| »»» 文本编辑器 »»»
01-chapter1.markdown|212| »»» 差异分析工具 »»»
01-chapter1.markdown|220| »»» 查看配置信息 »»»
01-chapter1.markdown|240| »» 获取帮助 »»
01-chapter1.markdown|254| »» 小结 »»
我想将快速修复条目格式化为:
|005| »» 关于版本控制 »»
|011| »»» 本地版本控制系统 »»»
|022| »»» 集中化的版本控制系统 »»»
|033| »»» 分布式版本控制系统 »»»
|042| »» Git 简史 »»
|056| »» Git 基础 »»
|060| »»» 直接记录快照,而非差异比较 »»»
|074| »»» 近乎所有操作都是本地执行 »»»
|082| »»» 时刻保持数据完整性 »»»
|092| »»» 多数操作仅添加数据 »»»
|098| »»» 文件的三种状态 »»»
|121| »» 安装 Git »»
|125| »»» 从源代码安装 »»»
|152| »»» 在 Linux 上安装 »»»
|162| »»» 在 Mac 上安装 »»»
|177| »»» 在 Windows 上安装 »»»
|185| »» 初次运行 Git 前的配置 »»
|197| »»» 用户信息 »»»
|206| »»» 文本编辑器 »»»
|212| »»» 差异分析工具 »»»
|220| »»» 查看配置信息 »»»
|240| »» 获取帮助 »»
|254| »» 小结 »»
我找不到任何选项来做到这一点。如果你知道,请告诉我。谢谢!
最佳答案
无法配置快速修复位置的方式
显示。只能通过以下方式指定如何解释它们errorformat
选项。但是,可以使用隐藏功能
在 quickfix 或位置列表窗口中隐藏文件名。
以下命令启用隐藏并定义语法规则
匹配第一行之前行首的任何文本|
特点。
:set conceallevel=2 concealcursor=nc
:syntax match qfFileName /^[^|]*/ transparent conceal
可以为每个快速修复或位置列表触发这些命令使用自动命令的窗口。然而,总的来说,这不是一个好主意,
因为在大多数情况下显示文件名是一个有用的功能。
对于问题中提出的案例,最好使这些
仅针对新收集的位置列表进行自定义。这个需要
不过,请先打开位置列表窗口。
:lopen
:set conceallevel=2 concealcursor=nc
:syntax match qfFileName /^[^|]*/ transparent conceal
关于vim - 如何格式化 Vim 快速修复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11199068/