Visual Studio Code - 在搜索结果中包含上下文

ste*_*eel 7 visual-studio-code vscode-settings

有没有办法在 Visual Studio Code 中显示搜索结果的上下文?

默认情况下,例如,如果我搜索“调试”,我可能会返回 2 行代码。

filea.rb
  def debug(str)
fileb.js
  function debug(str) {
Run Code Online (Sandbox Code Playgroud)

我想看看代码的用途,比如说,每个匹配项上下 3 行。

filea.rb
  def somefunca
    puts "some func a"
  end

  def debug(str)
    puts str.inspect
  end

  def somefuncb
Run Code Online (Sandbox Code Playgroud)

是否可以将这样的上下文添加到搜索结果中?

Mar*_*ark 5

v1.41 添加了一项功能的预览,该功能将在编辑器中显示搜索结果,从而允许在实际搜索结果周围添加一些上下文行。看search.enableSearchEditorPreview

预览:搜索编辑器

在这个里程碑中,我们开始在编辑器中显示搜索结果。这为查看搜索结果提供了更多空间,并允许用户同时维护多个搜索结果集合。在此版本中,您可以在搜索编辑器中:

  • 使用 Go to Definition-family 命令导航到结果,包括 Peek Definition 和 Open Definition to Side。

  • 重新运行搜索以更新结果列表

  • 查看围绕结果的上下文行

  • 将结果保存到磁盘以供稍后引用或什至在 SCM 中跟踪

我们将在即将发布的版本中继续添加功能并提高可用性。

注意:您可以通过启用设置search.enableSearchEditorPreviewstrong text来预览此功能 。

在编辑器演示中预览搜索


v1.42添加了更多功能,请参阅https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#search-editor。就像选择搜索结果周围的上下文宽度并在搜索编辑器本身中运行另一个搜索一样。

搜索上下文演示


顺便说一句,您可以直接打开搜索编辑器,而无需先在面板中使用当前未绑定的命令New Search Editor( search.action.openNewEditor)进行搜索(并在 v1.48 中重命名)。该命令将始终打开一个新的搜索编辑器。

相反,如果您希望重新使用搜索编辑器(而不是打开一个新的),则会在v1.48添加一条命令:

Open Search Editor : search.action.openEditor// 默认情况下也未绑定


v1.43发行说明https://code.visualstudio.com/updates/v1_43#_search-editors

在搜索编辑器中,可以使用“转到定义”操作导航到结果,例如 kb( editor.action.revealDefinition) 在当前编辑器组中打开源位置,或 kb( editor.action.revealDefinitionAside) 在编辑器中将位置打开到侧面。此外,双击可以选择打开源位置,可通过search.searchEditor.doubleClickBehaviour设置进行配置 。

搜索编辑器图像

您可以使用搜索编辑器打开新搜索编辑器:打开新搜索编辑器命令,或使用搜索视图顶部的“打开新搜索编辑器”按钮。或者,您可以将现有结果从搜索视窗搜索复制到搜索编辑器,并将“在编辑器中打开”链接添加到结果树的顶部,或搜索编辑器:在编辑器中打开 Reuslts 命令。

注意您可以试用实验性搜索编辑器:应用更改扩展将您在搜索编辑器中所做的编辑同步回源文件:

搜索并应用更改

------------------------------- 见下面的编辑:

显示上下文行在搜索编辑器的使用之间似乎不是持久的。但是Alt+L充当显示/隐藏上下文的切换。为上下文行数选择的值是持久的。

但是,在 v1.44 和 Insiders' Build 中有两个新命令,用于增加/减少每个搜索结果周围的上下文行数:

{
  "key": "alt+-",
  "command": "decreaseSearchEditorContextLines",
  "when": "inSearchEditor"
},
{
  "key": "alt+=",
  "command": "increaseSearchEditorContextLines",
  "when": "inSearchEditor"
}
Run Code Online (Sandbox Code Playgroud)

默认情况下它们是未绑定的 - 这些只是示例键绑定。上下文行输入框不需要可见就可以工作。所以Alt+L启用上下文行或这些新命令来更改数字。


在 v1.46 中,有一个新设置可以使显示的上下文行数量保持不变:

 "search.searchEditor.defaultNumberOfContextLines": 4,  // default is now 1
Run Code Online (Sandbox Code Playgroud)

search.searchEditor.reusePriorSearchConfiguration - 创建新的搜索编辑器时重用上一个活动搜索编辑器的配置

defaultNumberOfContextLines似乎优先reusePriorSearchConfiguration

请参阅v1.46 发行说明:搜索编辑器改进