Visual studio code 如何搜索所选文本?

Visual studio code 如何搜索所选文本?,visual-studio-code,vscode-settings,Visual Studio Code,Vscode Settings,如何在不必复制/ctrl-f/粘贴的情况下搜索当前文件中的选定文本 如需澄清:Ultraedit具有此行为。按F3键时,如果没有选定的文本,它将执行最后一次搜索,如果有选定的文本,它将在当前文件中搜索选定的文本。启用编辑器.find.seedSearchStringFromSelection设置,如下所示。这将导致在按ctrl+f时自动搜索突出显示的文本 我找到了我要找的东西 Ctrl+D触发操作添加选择以查找下一个匹配项,这正是我想要的:立即搜索所选文本,就像Ultraedit中的F3。Ult

如何在不必复制/ctrl-f/粘贴的情况下搜索当前文件中的选定文本


如需澄清:Ultraedit具有此行为。按F3键时,如果没有选定的文本,它将执行最后一次搜索,如果有选定的文本,它将在当前文件中搜索选定的文本。

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


我找到了我要找的东西


Ctrl+D
触发操作添加选择以查找下一个匹配项,这正是我想要的:立即搜索所选文本,就像Ultraedit中的
F3

Ultraedit方式搜索是我最喜欢的,而且非常方便:单个“F3”键可以处理所有内容

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

明确地说,Ultraedit方式搜索的定义是: 按F3键时,如果没有选定文本,则执行最后一次搜索;如果有选定文本,则在当前文件中搜索选定文本

以下是Ultraedit way search绝对100%兼容的解决方案:

  • 选中文本后,执行下一个SelectMatchFindAction
  • 未选择任何文本时,执行下一步操作
  • F3
    执行上述两项操作
  • Shift+F3
    保留其原始值:查找上一个
因此,
keybindings.json
可以添加以下行以禁用原始的
F3
Ctrl+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+F3
F3
一样智能,请在
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"
},

叶杰姬的回答比我的好。