VSCODE "no refactorings available" for Python



Ctrl + alt + R 用于扩展 python.python 2020.1.58038 总是给我一条"没有可用的重构"消息。

可能是一个配置问题,但我多次尝试卸载/重新安装并重新启动代码无济于事。

以为也许我错过了蟒蛇绳,但蟒蛇-m pip安装--升级绳索 要求已经是最新的:绳索在c:\users\cdoyle\appdata\roaming\python\python37\site-packages (0.16.0(

VS 代码版本信息: 版本: 1.42.0 (用户设置( 提交: ae08d5460b5a45169385ff3fd44208f431992451 日期:2020-02-06T10:51:34.058Z 电子:6.1.6 铬:76.0.3809.146 节点.js:12.4.0 V8: 7.6.303.31-电子.0 操作系统:Windows_NT x64 10.0.18362

另外我没有看到任何未解决的问题 https://github.com/Microsoft/vscode-python/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+refactoring

不知道接下来要尝试什么。

谢谢

我是用VS Code编写Python的新手,遇到了同样的问题。我成功地使用"重命名符号"命令重命名函数并更新其所有引用。更多详情请见 https://code.visualstudio.com/docs/editor/refactoring。希望这有帮助!

我想进一步补充:

  1. 如果要一次性更改变量名称/函数名称,可以通过右键单击该特定名称在VS Code编辑器中使用"重命名符号"。

  2. 如果您的代码具有与变量名称和函数名称相关的内容,并且您希望在两个位置应用更改,则可以使用"更改所有匹配项"。

以上例子-

test = "Hello"
def test_func():
print("World")
print(test)
test_func()

如果我想将变量"test"更改为"new",将函数"test_func"更改为"new_func",我可以使用"更改所有匹配项"。 但是,如果我想只更改变量名称,那么我也要使用"重命名符号"。

Visual Studio Code及其Python扩展(在撰写本文时(在重构方面非常有限。它开箱即用,提供了两个重构操作:提取方法提取变量。您看到"没有可用的重构"的原因是当前选定的文本与这些操作中的任何一个都不匹配。尝试选择一行文本,然后按[Ctrl][Shift][R]键。

VSCode中删除了绳索支持,转而支持其Pylance语言服务器扩展使用的语言服务器协议集成。Pylance现在自动安装了vscode-python扩展,并且正在积极开发 - 也许他们将在未来实现更多的重构。如果您正在寻找更健壮的重构,请查看 PyCharm 重构,它目前要复杂得多。

对于 Python 3.10.2,请在 VSCode 版本 1.65.2 上使用右键单击更改所有匹配项 (CTRL-F2(

我认为@Wayne Barrrass-Brown的答案是最好的答案,但只是想添加一些我在类似情况下发现有用的东西。

双击要更改的变量,然后双击 Ctrl+D(这将选择该文本的下一个匹配项(,直到选择了要更改的所有匹配项,然后为所选变量/文本键入所需的新文本。

最新更新