vim - 如何格式化 Vim 快速修复条目?

标签 vim

这是生成 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/

相关文章:

vim - 在 :sh 之后检测背景 vim

vim 无扩展名文件的默认语法

vim - 我可以让 vim 显示当前的函数/命名空间/等吗?在底部栏中?

vim - 自定义 Vim 命令以根据日期打开文件

ubuntu - ubuntu终端中的vim : "background" property is set after vimrc is loaded

Vim 使用参数重复文本(代码) block

vim 搜索和复制行,包括模式

vim 保存后会创建我的文件的副本吗?

vim中的python从当前目录获取文件列表

Git:取消交互式 rebase