有没有办法在 Xcode 或 OS X 中保存搜索?

有没有办法在 Xcode 或 OS X 中保存搜索?

我想通过保存搜索来改善我的工作流程,这样我既可以简单地打开它,也可以自动更新它。就我目前的特定用途而言(将来可能会改变),它会在文件内容中搜索与正则表达式匹配的任何文本/\/\/\s*((TODO)|(FIXME)):/,这样我就可以找到我或同事所做的任何评论,希望以后能返回到代码中。有什么方法可以保存搜索并轻松/自动执行?

任何易于访问的东西都可以工作(我可以单击执行的 Xcode 原生预保存搜索、包含第一个n结果的 Yosemite 侧边栏小工具、我可以在第二台显示器上打开的低交互或无交互终端程序等)。我知道 Finder 可以有智能文件夹等,但我必须仔细检查文件,逐个打开以找出它是否是我关心的代码。我真的只对找到的文本和它所在的行的其余部分感兴趣,而不是它所在的文件。如果我能在找到新结果时收到警报,那就更棒了。

答案1

现在在 Xcode 15.0+ 中可以实现这一点。

首先,使用 Xcode 中的“在文件中查找”并自定义搜索。

然后,在搜索侧栏中,单击任意结果,您将看到一个条目,上面写着Bookmark "Find 'search text here'。这是一个非常有用的附加功能。

在此处输入图片描述

答案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)。

相关内容