这是生成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()
Run Code Online (Sandbox Code Playgroud)
示例降价文件: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| »» ?? »»
Run Code Online (Sandbox Code Playgroud)
我想将快速修复条目格式化为:
|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| »» ?? »»
Run Code Online (Sandbox Code Playgroud)
我找不到任何选择.如果你知道,请告诉我.谢谢!
无法配置quickfix位置的显示方式.只能指定如何使用该errorformat选项解释它们.但是,可以使用隐藏功能隐藏quickfix或位置列表窗口中的文件名.
以下命令可以隐藏和定义与第一个|字符前一行开头的任何文本匹配的语法规则.
set conceallevel=2 concealcursor=nc
syntax match qfFileName /^[^|]*/ transparent conceal
Run Code Online (Sandbox Code Playgroud)
可以使用自动命令为每个quickfix或位置列表窗口触发这些命令.然而,一般来说这不是一个好主意,因为在大多数情况下,显示文件名是一个有用的功能.因此,在问题中提供的情况下,最好仅针对新收集的位置列表进行这些自定义.但它需要首先打开位置列表窗口.
lopen
set conceallevel=2 concealcursor=nc
syntax match qfFileName /^[^|]*/ transparent conceal
Run Code Online (Sandbox Code Playgroud)