如何使 Vim 在打开带有 "TODO" 注释的文件时发出警告或弹出窗口
How to make Vim give a warning or popup when opening a file with "TODO" comments
这里有两个使该功能有用的场景:
- 场景 1:我们有一些未完成的代码,可能超过 200 行。未完成的代码可以 运行 但只会给出错误的结果。几天后重新打开文件后,很容易忘记未完成的工作,得到不想要的结果并浪费时间调试。
- 场景 2:我们编写了一些可能仅对测试阶段有效的临时代码。例如,将矩阵保存为图像文件以供调试。也很容易忘记注释调试代码和 运行 脚本而不更改代码恢复正常。
如果我们将 TODO 放在需要注意的代码中,那么 Vim 在打开包含这些 TODO 的文件时给出一些弹出窗口或警告会很棒。我在 Vim 上是个新手。有人可以帮忙吗?谢谢!
您可以在应该 search()
为 "TODO" 的地方监听事件 BufReadPost
,并在那里生成一条消息。使用 :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
(最好放在一个函数中)
或者简单地检查每个或特定文件中的 TODO :vimgrep
。
这里有两个使该功能有用的场景:
- 场景 1:我们有一些未完成的代码,可能超过 200 行。未完成的代码可以 运行 但只会给出错误的结果。几天后重新打开文件后,很容易忘记未完成的工作,得到不想要的结果并浪费时间调试。
- 场景 2:我们编写了一些可能仅对测试阶段有效的临时代码。例如,将矩阵保存为图像文件以供调试。也很容易忘记注释调试代码和 运行 脚本而不更改代码恢复正常。
如果我们将 TODO 放在需要注意的代码中,那么 Vim 在打开包含这些 TODO 的文件时给出一些弹出窗口或警告会很棒。我在 Vim 上是个新手。有人可以帮忙吗?谢谢!
您可以在应该 search()
为 "TODO" 的地方监听事件 BufReadPost
,并在那里生成一条消息。使用 :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
(最好放在一个函数中)
或者简单地检查每个或特定文件中的 TODO :vimgrep
。