如何在打开带有“TODO”注释的文件时让Vim发出警告或弹出窗口

时间:2017-09-20 08:55:10

标签: vim vim-plugin

以下是使此功能有用的两种方案:

  • 场景1:我们有一些未完成的代码,可能超过200行。未完成的代码可以运行但只会给出错误的结果。几天后重新打开文件后,很容易忘记未完成的工作,得到不希望的结果并浪费时间调试。
  • 场景2:我们编写了一些临时代码,这些代码可能仅对测试阶段有效。例如,将矩阵保存为图像文件以进行调试。也很容易忘记评论调试代码并运行脚本而不将代码更改回正常。

如果我们将TODO放在需要注意的代码中,那么当Vim打开包含这些TODO的文件时会发出一些弹出窗口或警告会很棒。我是Vim的新手。有人能帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:4)

您可以收听BufReadPost所在的事件search(),以及#34; TODO",然后会生成一条消息。使用:echomsg:call confirm(),如果您正在使用gvim。

" untested
aug notify_TODO
  au!
  au BufReadPost * if search('TODO') > 0 | call confirm('Need to fix this', '&OK', 1, "warning") | endif
aug END

您还可以使用" TODO"来填充quickfix列表。

:call setqflist(filter(map(getline(1,'$'), '{"bufnr": '.bufnr("%").', "lnum": v:val =~ "TODO" ? v:key : -1, "text": v:val}'), 'v:val.lnum>0'))
:copen

(最好放入一个功能)

或者只需使用:vimgrep检查每个或特定文件中的TODO。