在 vscode 中替换选择

use*_*032 6 visual-studio-code find-replace

关于 vscode 中的“查找”是否应默认为整个文件或所选内容,已经相当多的讨论(1、2、3 ) 。讨论似乎集中在默认情况下禁用“选择中”,但提供配置选项“editor.find.autoFindInSelection”来更改此默认值(三个选项从不、总是、仅在多行选择上)。

但是,我发现在我的工作流程中,当我进行简单查找时,我从不希望“选择中”处于活动状态,但当我使用多行选择进行查找/替换时,我确实希望它处于活动状态。

当我调用查找/替换(对我来说 Ctrl+H)而不是简单查找(对我来说 Ctrl+F)时,是否有一个设置仅切换“选择”?

Mar*_*ark 3

当我调用查找/替换(对我来说 Ctrl+H)而不是简单查找(对我来说 Ctrl+F)时,是否有一个设置仅切换“选择”?

您可以使用新命令设置以下键绑定editor.actions.findWithArgs

{
  "key": "ctrl+f",
  "command": "editor.actions.findWithArgs",
  "args": {
    "findInSelection": false,
    // "isRegex": false,
  }
},
{
  "key": "ctrl+h",
  "command": "editor.actions.findWithArgs",
  "args": {
    "findInSelection": true,
    // "isRegex": true,
    "replaceString": "",
  }
}
Run Code Online (Sandbox Code Playgroud)

这些大多有效。我已经提交了一个错误:https ://github.com/microsoft/vscode/issues/141683

如果“查找小部件”关闭,这些小部件将按预期工作。尽管只有您触发+时有选择时,您才会Find In Selection启用该选项。我觉得这个要求没问题。CtrlH

不起作用并且问题的主题是如果“查找小部件”已打开并且您Ctrl+ H,则该Find In Selection选项禁用。它应该是 -isRegex在这种情况下,根据上述键绑定,该选项被禁用。

如果问题解决了,那差不多就到了。