如何让vs code自动插入if __name__ ...代码片段?

18

如何配置或启用Visual Studio Code自动插入标准:

if __name__ == '__main__':

我看到它是在2018年 实现的,但该票中讨论的用法对我没有任何触发作用。我一直在浏览文档和互联网,但我的搜索关键词并没有找到相关页面。


在PyCharm中,您键入“main”,然后按Tab键,或许在VS Code中也是一样的?只是猜测。 - Random Davis
2个回答

41

他们明确地被在2021年1月版中移除

归咎于这个问题: 删除或禁用代码片段

所有旧的Python代码片段都在这里: https://github.com/microsoft/vscode-python/blob/2020.12.424452561/snippets/python.json

如果你想要它们回来:

  1. 在vscode中,选文件 -> 首选项 -> 配置用户代码段。输入python并选择python,一个json文件将会打开
  2. 复制-粘贴所有或特定的代码片段到文件中并保存
  3. Ctrl+Shift+P 然后重新加载窗口以激活更改

这是默认的主要代码片段:

    "if(main)": {
        "prefix": "__main__",
        "body": ["if __name__ == \"__main__\":", "    ${1:pass}"],
        "description": "Code snippet for a `if __name__ == \"__main__\": ...` block"
    },

如果您想更改或调整触发代码片段的文本,可以修改前缀字段。前缀字段可以是字符串(如上所示)或列表(如果您需要更多的触发器):

"prefix": ["__main__", "ifmain", "main", "ifm", "if m"],

3
谢谢。在第n次将其复制粘贴到新配置文件中后,我去寻找了一个扩展程序,使其更容易。请参见https://github.com/cstrap/python-snippets - matt wilkie

6

请参考用户下面的答案,因为那是更好的答案。


我也注意到了同样的问题——我想知道是否删除了这个代码片段,或者其存在取决于使用的语言服务器(我相信VSCode默认从MS的语言服务器切换到了Pylance)。

无论如何,您可以通过单击菜单项“代码”>“首选项”>“用户片段”,选择python.json,然后输入以下条目来重新创建扩展:

"Main": {
    "prefix": "__main__",
    "body": [
        "if __name__ == \"__main__\":",
        "\t${1:pass}"
    ],
    "description": "Insert main block"
}

更多信息:https://code.visualstudio.com/docs/editor/userdefinedsnippets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接