如何在 GitHub 代码搜索中转义字符? [复制]
Posted
技术标签:
【中文标题】如何在 GitHub 代码搜索中转义字符? [复制]【英文标题】:How do I escape characters in GitHub code search? [duplicate] 【发布时间】:2016-03-18 11:35:54 【问题描述】:我正在尝试使用GitHub's code search 来搜索包含=
、+
等字符的代码行。
我从https://help.github.com/articles/searching-code/#considerations-for-code-search了解到,这些字符是通配符,必须转义,否则会被忽略。
这是一个示例:"if \(done is True\)",另一个示例:"if (done is True)"。
两者都在搜索栏右侧返回相同的"your query contains a character that is ignored"
警告。我的转义似乎没有做任何事情,我得到的结果是忽略了字符。
【问题讨论】:
【参考方案1】:更新:使用github.dev/....
,这是github团队的官方解决方案。只需将 URL 中的 .com
替换为 .dev
或在任何 repo 中按点 (.) 键即可在 github.dev 中打开。它甚至可以与私人仓库一起使用。
GitHub 本身不支持高级代码搜索,例如使用特殊字符或排除或包含特定文件夹,我们可以使用GitHub1s 来搜索 repo 中的代码。
GitHub1s 会在 VSCode 中在线打开一个 repo(因此不需要克隆过程),我们可以使用 VSCode 提供的高级代码搜索来搜索。
要在 GitHub1s 中打开 repo,只需将 github.com/....
替换为 github1s.com/...
即可在 VSCode 中在线查看 repo(换句话说,在 .com
之前添加 1s
)。
重要提示:Github1s 中的代码搜索仅适用于公共 repo
【讨论】:
这只是在打开的文件中搜索。因此,虽然它有效,但存在很大的限制。 @maulik13 不,它适用于所有文件(包括未打开的文件),他们在 0.05 及更高版本中添加了此功能。您甚至可以在我的屏幕截图中看到,它显示了未打开文件的结果。更多信息:github.com/conwnet/github1s/pull/199 和 github.com/conwnet/github1s/issues/13 奇怪,当我昨天尝试时,它只搜索打开的文件。 @maulik13 它是公共回购吗?这仅适用于公共回购 @MarkRucker 这是来自与 GitHub 团队合作的 VSCode 团队。 youtube.com/watch?v=c3hHhRME_XIcode.visualstudio.com/docs/remote/…docs.github.com/en/codespaces/developing-in-codespaces/…【参考方案2】:还有一个(有些人可能会说可耻)半-解决方案/解决方法:使用 google...
在搜索字段中输入 site:repo-url
以及您的关键字。
我在 redux-logic 存储库中搜索 action$
并且至少能够过滤掉所有其他不需要的 action
(没有美元符号)结果,这些结果出现在 github 搜索中。我在 Google 中输入(注意引号):
site:https://github.com/jeffbski/redux-logic "action$"
不幸的是,谷歌不会列出所有结果。这就是为什么我一开始就写了semi。所以你可以用谷歌快速试试运气,如果你没有找到你要找的东西,回退到检查 git repo + 使用离线工具搜索,如@987654322 建议的 vscode、intellij 或 cmd-line-tools @
我希望 github 能很快推出一个全新的搜索功能,让用户可以爱而不是恨。
【讨论】:
2021,被微软和那些在“世界上最大最先进的开发平台”上编程的重要人物收购。正如他们所描述的那样,他们被默默地忽略了,不知道该笑还是该哭:D 希望他们很快会改用必应,所有这些问题都会消失 ;)【参考方案3】:您需要在本地执行此操作。以下是一些选项,来自https://***.com/a/38288679/362202:
克隆贵公司的 github 源网站 在本地做一个git grep
,它支持基本的正则表达式或扩展的POSIX正则表达式(git grep -E
)
或pickaxe search (git log --all -S...
或git rev-list --all|grep xxx
,也允许使用正则表达式
这些策略不适用于 github 范围的搜索,这是一种耻辱。
【讨论】:
如果您有 1000 多个存储库要搜索怎么办? 如果我想与其他人分享结果......正如人们对 github 等本应用于协作的网站所期望的那样,该怎么办?【参考方案4】:我不认为你可以为 github 转义字符
来自searching code文档:
您不能在搜索中使用以下通配符 查询:。 , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ ( ) [ ]。 搜索将简单地忽略这些符号。
【讨论】:
对,我看到了。有没有办法逃脱这些字符?这意味着如果我想在我的仓库中搜索x += 2
就没有办法做到这一点?
@
呢?
遇到了这个; 无用代码搜索!我需要在 Ruby on Rails 代码库中找到 :ok
和 :locked
的所有实例。 Github 的糟糕搜索不允许这样做。
@User:据this issue称,@
已被提及不在名单上,但目前还没有回应。
哑巴。很棒的 GitHub。以上是关于如何在 GitHub 代码搜索中转义字符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Hadoop 上运行的 Cloudera Impala 的 python impyla 查询中转义字符