【问题标题】:Sublime Text - Exclude comments in searchSublime Text - 在搜索中排除评论
【发布时间】:2015-04-07 10:24:10
【问题描述】:

每次我在数百个文件中搜索一个函数时,我都会看到很多匹配的 cmets 在代码中无效。

有人可以将 Sublime Text 的搜索范围限制为真实代码,并排除 cmets 吗?

我使用 Sublime Text 3 开发 C++ 程序。

【问题讨论】:

  • 我是提供+100赏金的人。我只是留下这个评论,以防有人想用评论问我任何事情。如果您愿意,也可以在我的回答中发表评论。

标签: comments sublimetext2 sublimetext3 sublimetext


【解决方案1】:

我创建了一个Plugin,用于在给定范围内搜索给定字符串。 默认范围选择器是-comment,有效地在 cmets 之外进行搜索。要搜索的文本取自当前选择。结果显示在下拉菜单中

基本上我结合了两种 API 方法:

  • view.find_all(pattern) 在给定视图中搜索模式。
  • view.match_selector(position, scope_selecor) 检查给定位置是否在给定范围内。

【讨论】:

  • 您的解决方案满足所有赏金要求,因此您应得的赏金。干得好。
  • 谢谢,如果您需要帮助调整它,请告诉我 ?
  • 不客气。我试图修改插件以在输入时查找新单词,但我无法做到。这会很酷,但请注意,至少对我而言,这并不是必需的。
  • 对不起,你想做什么?您想在文本框中键入搜索到的文本而不是使用当前选择吗?
  • @prosti 将其复制粘贴到您的 Packages/User 文件夹中。去那里使用 Sublime 中的“浏览包”菜单
【解决方案2】:

您可以使用正则表达式来查找与您提供的正则表达式匹配的模式。 根据您的匹配设计正则表达式。

您可以通过打开“正则表达式”标志来提供正则表达式

示例

如果您想在单行 cmets 中单独匹配,您可以使用此正则表达式来匹配您的情况。

^(?!\/\/)([^\/\n]*)YOUR_SEARCH_TERM

如果您还想在多行 cmets 中进行匹配,请使用此选项。

^(?!(\/\/|(\/\*(.|\n)*([^\*])(?=\/))))YOUR_SEARCH_TERM

【讨论】:

  • 评论有其自身的复杂性。能不能给个完整的答案?
  • 现在看看上面。 @barej
  • 但它也在 cmets 中搜索了我:image
  • 之前未处理的多个 cmets。现在检查上面的答案。 @barej
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 2011-11-20
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
相关资源
最近更新 更多