VS代码:如何在python中查找变量的所有引用?

时间:2019-07-19 04:53:13

标签: python visual-studio-code pycharm

我想要Pycharm中的Find Usages之类的VS Code功能,该功能可以查找变量的所有读写操作。以一个简单的文件为例:

class Foo:
    def __init__(self, bar):
        self.bar = bar

    def do_something(self):
        bar1 = "hhhhh"
        if bar1 == self.bar:
            print("do something")

在Pycharm中使用self.bar的“查找用法”:

Find Usages screenshot

我已经尝试过“查找所有引用”,但是它不起作用:

Find all references screenshot

因为找不到if bar1 == self.bar:

更新:我要搜索的不是出现的内容,因为它只与包含其他具有相同名称的变量以及注释中出现的内容的关键字匹配。

更新:原来是Microsoft python语言服务器中的一个已知问题:github.com/microsoft/python-language-server/issues/1174

4 个答案:

答案 0 :(得分:2)

我的用户将python扩展jediEnabled选项设置为false时出现了问题:

"python.jediEnabled": false,

因此请切换回默认值:

// Enables Jedi as IntelliSense engine instead of Microsoft Python Analysis Engine.
  "python.jediEnabled": true,

和“查找所有引用”在示例中起作用!

也许这是Microsoft Python Analysis Engine中的错误。

答案 1 :(得分:0)

在VS Code中,使用ctrl + shift + f并键入要搜索的内容,它将在路径/项目级别中显示所有键入的单词。

答案 2 :(得分:0)

查找用法。变量选项

编辑|查找|查找用法 Alt + F7 本节介绍“查找用法”对话框中的字段,变量或参数用法搜索选项

在“显示用法”弹出窗口中单击“常规设置svg”图标时,该对话框打开,其中列出了插入符号处所有出现的符号。

来源:https://www.jetbrains.com/help/pycharm/find-usages-variable-options.html

答案 3 :(得分:0)

使用Microsoft提供的pylance语言服务(2020年7月新增)时,“查找所有引用”功能在VS Code中效果很好https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance

右键单击一个符号,然后从上下文菜单中选择“查找所有引用”。效果很好,甚至可以找到工作空间中不同模块中引用的方法。