使用Visual Studio Code重构本地变量名称


76

我有这种简单的情况。我想重构角色变量的名称:

在此处输入图片说明

看起来Visual Studio Code足够聪明,可以知道不应触摸URL中的“角色”。

我只想在单个文件中,单个作用域中重构变量的名称,而不是整个文件,也绝对不能重构多个文件!

如果使用Ctrl+ H,它将带我进入菜单,默认情况下,该菜单将在多个文件或整个单个文件中重构名称,但我只想在单个函数作用域中重构名称!

Answers:


133

使用重命名符号代替标准的查找/替换。F2默认情况下,重命名绑定。

重命名符号将知道仅触摸roles您示例中的本地引用。Visual Studio Code附带了对JavaScript和TypeScript的重命名支持。其他语言可能需要安装语言扩展。


1
男人,有什么方法可以使用比f2键更简单的方法?这真的很难使用。为什么没有更多的右键单击选项?
亚历山大·米尔斯

7
右键单击该符号。它应该在那里。您也可以将其重新绑定到所需的任何键盘快捷方式
Matt Bierner

如果当前的语言服务器不支持该功能,则上下文菜单项不会显示。
阿尔瓦罗冈萨雷斯

4
就我而言,是CTRL + F2。我当前使用的是1.30.2版
Silvio Delgado,

3
请注意,“更改所有出现次数”与“重命名符号”不同。“更改所有出现次数”似乎仅限于当前文档,而“重命名符号”则在整个项目中传播。除此之外,“更改所有出现次数”还将愉快地重命名不同对象的属性,如果它们的名称相同(例如,如果您有两个对象a.SomeValue:stringb.SomeValue:numberSomeValue使用ctrl + F2更改a的属性,则它还将重命名该属性的b,即使它们是不同的类型,“重命名符号”也只会重命名该类型的属性
。– CGundlach

21

使用重命名符号。默认情况下使用Ctrl+定义F2

但是,请记住,要更改的变量,定义,函数等将在文件本身而不是范围中进行更改。Visual Studio Code暂时没有实现在范围内重命名变量(例如,函数内部的变量)的实现。所以记住这一点。

Visual Studio代码-更改所有事件


4
不知道发布此答案后是否已更改,但是目前有两个不同的命令:重命名符号(F2)和更改所有出现次数(Ctrl + F2)。据我所知,如果是第一个,那就聪明。
阿尔瓦罗冈萨雷斯

1
只是添加一点,使用时要小心,我只是使用了它,它改变了整个项目中的每个实例,而不仅仅是我正在处理的文件,vscode无法将其反转,它只是出现了一个错误,指出重构失败。感谢上帝,我只能说Git。
iFunction

18

对于macOS用户:使用Fn+ +F2重命名代码块中的变量。


谢谢。它在Mac上对我有效。
nroy

4

要打开用户和工作区设置,请使用以下Visual Studio Code菜单命令:

Windows / Linux上:菜单文件首选项设置。在macOS上代码首选项设置

您也可以使用“首选项”从命令面板(Ctrl+ Shift+ P)打开“设置”编辑器,打开“设置”或使用键盘快捷键(+ )。Ctrl,

在此处输入图片说明

在搜索栏中,输入settings.json,然后在下面的代码中添加以下代码:

{
  "command": "editor.action.changeAll",
  "key": "ctrl+f2",
  "when": "editorTextFocus && !editorReadonly"
}

{
  "command": "editor.action.rename",
  "key": "f2",
  "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
}

在绑定中。

F2似乎适用于所有文件,而Ctrl+F2仅适用于当前文件。


你是说说keybindings.json而不是settings.json
user9074332
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.