如何搜索所选文本?

时间:2018-09-19 14:22:43

标签: visual-studio-code vscode-settings

如何在复制/ ctrl-f /粘贴中搜索当前文件中的选定文本?

为澄清起见: Ultraedit具有此行为。按下F3并且没有选定的文本时,它将执行最后一个搜索,如果有选定的文本,则它将在当前文件中搜索选定的文本。

3 个答案:

答案 0 :(得分:2)

启用editor.find.seedSearchStringFromSelection设置,如下所示。这将导致在按ctrl + f时自动搜索突出显示的文本。

enter image description here

答案 1 :(得分:0)

我找到了想要的东西。

Ctrl+D触发操作向下次查找匹配项添加选择,该操作恰好满足了我的期望:立即搜索选定的文本,就像在Ultraedit中F3一样。

答案 2 :(得分:0)

Ultraedit-way 搜索是我最喜欢的,它真的很方便:一个“F3”键可以处理所有。

Ctrl+D 的缺点是:它不能环绕搜索。

明确地说,Ultraedit-way search的定义是: 当按下 F3 并且没有选定的文本时,它执行最后一次搜索,如果有选定的文本,则它在当前文件中搜索选定的文本。

这是绝对 100% 兼容 Ultraedit 方式搜索的解决方案:

  • 选择文本后,执行 nextSelectionMatchFindAction
  • 当没有选择文本时,执行 nextMatchFindAction
  • 单个 F3 可以同时满足上述两种情况。
  • Shift+F3 保持原样:查找上一个

因此keybindings.json可以添加以下几行来禁用原来的F3Ctrl+F3功能,并在选择和未选择文本时添加两个新的F3功能。

{
    "key": "f3",
    "command": "editor.action.nextSelectionMatchFindAction",
    "when": "editorFocus && editorHasSelection"
},
{
    "key": "ctrl+f3",
    "command": "-editor.action.nextSelectionMatchFindAction",
    "when": "editorFocus"
},
{
    "key": "f3",
    "command": "editor.action.nextMatchFindAction",
    "when": "editorFocus && !editorHasSelection"
},
{
    "key": "f3",
    "command": "-editor.action.nextMatchFindAction",
    "when": "editorFocus"
}

还有一件事需要解决: 当按下 F3 时,会出现搜索对话框并突出显示每个匹配的文本,您可以在搜索完成后按 ESC 关闭搜索对话框。

更新@2021/1/25 如果有人希望 Shift+F3F3 一样智能,请将以下行添加到 keybindings.json 中:

{
    "key": "shift+f3",
    "command": "editor.action.previousSelectionMatchFindAction",
    "when": "editorFocus && editorHasSelection"
},
{
    "key": "shift+f3",
    "command": "editor.action.previousMatchFindAction",
    "when": "editorFocus && !editorHasSelection"
},
{
    "key": "shift+f3",
    "command": "-editor.action.previousMatchFindAction",
    "when": "editorFocus"
},