我想通过保存搜索来改善我的工作流程,这样我既可以简单地打开它,也可以自动更新它。就我目前的特定用途而言(将来可能会改变),它会在文件内容中搜索与正则表达式匹配的任何文本/\/\/\s*((TODO)|(FIXME)):/
,这样我就可以找到我或同事所做的任何评论,希望以后能返回到代码中。有什么方法可以保存搜索并轻松/自动执行?
任何易于访问的东西都可以工作(我可以单击执行的 Xcode 原生预保存搜索、包含第一个n
结果的 Yosemite 侧边栏小工具、我可以在第二台显示器上打开的低交互或无交互终端程序等)。我知道 Finder 可以有智能文件夹等,但我必须仔细检查文件,逐个打开以找出它是否是我关心的代码。我真的只对找到的文本和它所在的行的其余部分感兴趣,而不是它所在的文件。如果我能在找到新结果时收到警报,那就更棒了。
答案1
答案2
也许这个简短的终端命令会有所帮助:
while true; do clear; egrep -rhn 'TODO|FIXME' .; sleep 5; done
为了解释,while 循环将重新运行给定的命令,然后sleep
运行5
数秒并clear
刷新屏幕,然后再次执行。egrep
使用提供的 RegEx在当前目录-r
中递归搜索文件.
,-h
从输出中删除文件名标题(如果需要,只需删除 h),并-n
在前面添加相应的行号。
您应该能够用您自己的 RegEx 替换我提供的字符串,也可以用.
您想要搜索的任何目录替换。
或者,如果您安装了 Brew,则可以改用brew install watch
并运行以下命令:
watch -x egrep -rhn 'TODO|FIXME' .
该watch
命令-x
按照默认间隔重复执行给定的命令。
不幸的是,watch 似乎只能显示一个终端高度的匹配项。在这种情况下,最好还是单独运行egrep
。watch 和 egrep 有许多选项可以帮助您进一步自定义它,甚至可以用它制作一个完整的脚本。有关这些的更多详细信息,请参阅手册页(例如man watch
)。