我最近从PyCharm切换到VSCode用于我的Python编程,并且正在使用Microsoft自己的用于VSCode的Python扩展。虽然扩展程序的大部分自动完成工作对我来说很有用,但有些结果是不受欢迎的。
例如,如果我进入一个类并编写def
,我会在自动完成弹出窗口中获得一些可能性。我选择类方法,编辑器自动完成以下操作:
def funcname(self, parameter_list):
pass
这很棒,也允许用TAB键移动funcname
,parameter_list
和pass
。
但是,如果我改写覆盖方法, def __ini
,我可以选择自动完成__init__
并选择此选项会导致:
def __init__(self, *args, **kwargs):
return super().__init__(*args, **kwargs)
通常我不想从__init__
返回任何东西(事实上,更常见的是,我通常不希望返回超类的方法的结果)。此外,此自动完成模板使用单个空格而不是选项卡缩进,如果我不手动修复它(现在哪种类型违背了自动完成的目的),现在会导致缩进错误。
我希望第二个自动完成功能像第一个一样,但自动填写参数列表除外。
我的问题是,这些自动完成模板在哪里定义,我该如何编辑它们?
我认为您正在寻找的是用户定义的片段。下面的链接提供了有关如何制作它们的指南,您还可以从同一首选项区域编辑它们,包括tabstops和适用于代码段的范围。
https://code.visualstudio.com/docs/editor/userdefinedsnippets