使用VSCode重构局部变量名称

Ale*_*lls 40 visual-studio-code

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

在此输入图像描述

看起来VSCode很聪明,知道不应该触及网址中的"角色".

我只想在一个文件中,在一个范围内重构变量的名称,而不是整个文件,绝对不是多个文件!

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

Mat*_*ner 75

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

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

  • 就我而言,是 CTRL + F2。我目前使用的是 1.30.2 版 (7认同)
  • 右键单击符号.应该在那里.你也可以[重新绑定](https://code.visualstudio.com/docs/getstarted/keybindings)这个你想要的任何键盘快捷键 (5认同)
  • 请注意,“更改所有出现次数”与“重命名符号”不同。“更改所有出现次数”似乎仅限于当前文档,而“重命名符号”则在整个项目中传播。除此之外,如果不同对象的属性名称相同(例如,如果您有两个对象 `a.SomeValue:string` 和 `b.SomeValue:number` 并更改a的`SomeValue`属性用ctrl+F2,它也会重命名b的属性,即使它们是不同的类型。“重命名符号”只会重命名类型的属性。 (4认同)
  • 伙计,有没有比 f2 键更容易使用的方法?这真的很难用。为什么没有更多的右键单击选项? (3认同)

Ser*_* NN 25

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

  • 对我来说,只需“Fn + F2” (6认同)

Nic*_*vas 11

重命名符号,默认情况下使用“ Ctrl + F2”定义。但是,请记住,要更改的变量/定义/功能等将在文件本身(不仅是范围)中被更改。VSCode现在没有实现在范围内重命名变量的实现(例如:函数内部的变量),因此请记住这一点。 VS CODE更改所有事件

  • 不知道发布此答案后是否已更改,但是目前有两个不同的命令:重命名符号(F2)和更改所有出现次数(Ctrl + F2)。据我所知,如果是第一个,那就聪明。 (3认同)
  • 只是补充一点,使用它时要小心,我只是使用了它,它改变了整个项目中的每个实例,而不仅仅是我正在处理的文件,vscode 无法逆转它,它只是出现了一个错误,指出重构失败。感谢上帝,我只能说感谢 Git。 (2认同)

Kis*_*ore 5

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

Windows/Linux 上:菜单文件偏好设置。在macOS 上代码偏好设置

您还可以使用Preferences从命令面板 ( Ctrl+ Shift+ P)打开设置编辑器,打开设置或使用键盘快捷键 ( + )。Ctrl,

在此处输入图片说明

在搜索栏中,输入keybindings.json,并添加以下代码:

{
  "command": "editor.action.changeAll",
  "key": "ctrl+f2",
  "when": "editorTextFocus && !editorReadonly"
}
Run Code Online (Sandbox Code Playgroud)

{
  "command": "editor.action.rename",
  "key": "f2",
  "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
}
Run Code Online (Sandbox Code Playgroud)

在键绑定中。

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