自定义Python __init__代码片段为何不显示在IntelliSense中?
问题:自定义Python __init__代码片段无法触发
我是Python完全新手,花了两小时排查问题,网上资料要么过时、无关要么没用。我希望输入__init__时自动补全成简洁的__init__(),而不是VS Code默认生成的带参数代码:
__init__(self, *groups: _Group) -> None: super().__init__(*groups)
我参考资料写了如下代码片段:
"__init__ method": { "prefix": "__init__", "body": ["__init__($0)"], "description": "New __init__ method" }
并通过「Configure User Snippets」创建了global.code-snippets和python.json文件,放在C:\Users<myusername>\AppData\Roaming\Code\User\snippets路径下,但输入init时只显示默认建议,看不到自定义片段,请问哪里漏了?
可能的遗漏点及解决方法
- 片段优先级被默认补全覆盖:VS Code的Python插件默认补全优先级高于自定义片段。可以打开设置(快捷键
Ctrl+,),搜索editor.snippetSuggestions,将值改为top,让自定义片段显示在默认补全上方;或者把片段的prefix改成更独特的内容,比如init-simple。 - 文件放错位置:自定义Python片段必须放在
python.json中,global.code-snippets是全局所有语言生效的,单独的Python片段放在专属文件里才能在Python代码中触发。 - 前缀不匹配:你设置的
prefix是__init__,但输入的是init,自然不会触发。要么把prefix改成init,要么输入完整的__init__来调用自定义片段。 - JSON格式错误:检查
python.json的语法,外层必须包裹大括号,键值对格式要正确,比如:{ "__init__ method": { "prefix": "init", "body": ["__init__($0)"], "description": "New __init__ method" } } - 未重启编辑器:修改片段配置后,需要重启VS Code才能让新配置生效。
内容的提问来源于stack exchange,提问作者user21022801
相关产品推荐
相关产品推荐

