是否有任何技巧或扩展来选择visual studio代码中所选单词的所有实例,以方便编辑或删除这些实例而无需搜索和替换,如sublime text中的ِAlt+F3
当前回答
这似乎是一个老问题,但值得回答。
有-除了接受的答案-一个奇特的快捷方式来做到这一点,只要选择想要的单词并按Ctrl + D尽可能多的次数,每次按将在编辑器中选择一个准确的出现,在所有出现都被选中后,只需输入替换,所有的出现都会被替换。
其他回答
这似乎是一个老问题,但值得回答。
有-除了接受的答案-一个奇特的快捷方式来做到这一点,只要选择想要的单词并按Ctrl + D尽可能多的次数,每次按将在编辑器中选择一个准确的出现,在所有出现都被选中后,只需输入替换,所有的出现都会被替换。
选择“查找匹配编辑器.action. selecthighlights”的所有事件。
Ctrl + Shift + L
Cmd+Shift+L或Cmd+Ctrl+G在Mac
已经列出了几个选项,但有两个没有。它可以使用重命名和重构工具,不只是选择所有,但做出特定的改变,在所有已经选择。我将尝试将所有我认为相关的答案捆绑在一起,并添加两个以上的答案,不仅可以完成工作,而且是在同一代码多次出现时进行单一更改的非常好的工具。
1. 选择所有匹配
若要使用多个游标来选择所有匹配项,可以使用2个键绑定中的1个。两个键绑定执行相同的功能,换句话说,2个键绑定,1个vscode命令。按键绑定如下。
1. CTRL + f2
2. CTRL + shift + l
默认Keybinding
{
"key": "ctrl+f2",
"command": "editor.action.changeAll",
"when": "editorTextFocus && !editorReadonly"
}
// You can view/customize VSCode keybindings by pressing F1 and typing Keybindings
2. 选择下一个匹配
您可以使用下面的键绑定选择下一个匹配。这有利于选择特定区域内的所有事件。
CTRL + d
默认Keybinding
{
"key": "ctrl+d",
"command": "editor.action.addSelectionToNextFindMatch",
"when": "editorFocus"
}
边注
如果在按CTRL + D之前按下CTRL + K键绑定,它不会选择下一个实例,而是将您移动到下一个实例,并使用光标定位它。
默认Keybinding
3.重命名
这个还没有被提及,但除了在传统的IDE(如Visual Studio 2022或JetBrains: IntelliJ)中进行重构时,这个是你会用到的。
When you use this keybinding, it attempts to solve some of the problems that are incurred when using the other options listed above. The other options are overly greedy sometimes, and select parts of words that you didn't want to select, and if your not careful, you can delete quite a bit of code, resulting in messy situation. If you didn't notice that you screwed up right away, you end up saving, or working for a long while before having to reset everything, and you end up loosing a lot of work & time.
F2试图通过在底层实现逻辑来解决这个问题(IDK,如果它是一种算法或什么的),但它感觉非常像Visual Studio中的重构。它只选择您想要针对的特定情况。如果一个变量名为foo, is不会从名为fooFoo的变量中选择foo。它也不会从注释中选择foo。
F2
{
"key": "f2",
"command": "editor.action.rename",
"when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
}
4. 找到
我将保持这个方法简短而巧妙,但是find将遍历您输入到编辑器小部件中的模式。
按CTRL + F,然后输入你想要选择的。一直按ENTER键直到找到它。
5. 最后最好的
没有一种方法可以每次都选择最好的,这就是为什么有几种不同的方法来做这件事,然而,有一些方法通常比其他方法更有用。据我所知,这个特性是VS Code独有的,我在处理大型JSON文件和大型代码库(如开源PR)时一直使用它。
VS Code has its own search editor, its a special editor. You can open the search editor by pressing on the Magnifying Glass Icon on the Activity-bar. Type into the search editors side bar text-input what it is you want to select, then press ENTER. It will return all the results in the sidebar. You can use the lower text input, to replace all of the results with what ever you like. You can also click OPEN IN THE EDITOR (it looks like a link) and it will reproduce everything you searched for in a new document, that is opened to the side. From there you can manipulate it, and add it back to the document. I've already written enough for one answer, so I am not going to go to deep into every thing it can do, but this not only selects everything, it also extracts it, replaces it, lets you nit-pick exactly what it means to select "all" of a specific occurrence. It's a great tool for making a single change in a recursive fashion.
我还有另一个叫Loom的应用程序,在我的Mac电脑后台运行,它接管了我的键盘绑定。
CMD+移位+L
这只是随机的,我发现它是阻止键盘绑定到达VS Code。我试着一个一个地关闭已经打开的应用程序。这不是最好的方法,但很有效。
在Ubuntu上:
Ctrl + F2将立即选择所有事件。
Ctrl + D将逐个选择出现的事件。
推荐文章
- Visual Studio代码如何解决合并冲突与git?
- Visual Studio代码-在文件末尾插入换行符
- 如何重新启动VScode编辑扩展的配置?
- 禁止在vim中创建交换文件
- Visual Studio代码PHP Intelephense保持显示不必要的错误
- 基于gui或基于web的JSON编辑器,工作方式类似于属性浏览器
- 如何添加一个@顺风CSS规则CSS检查
- 我如何打开Visual Studio Code的设置。json文件?
- 在Visual Studio代码中运行的Angular应用程序中,TSLint扩展抛出错误
- 在Visual Studio代码编辑器中使用哪种字体以及如何更改字体?
- notepad++是否显示所有隐藏字符?
- 如何设置Visual Studio代码来编译c++代码?
- 如何从Visual Studio代码中执行Python代码
- 如何在visual studio代码切换文本情况
- 去第一行的文件在vim?