autocomplete-python插件仅支持模块和内置函数补全,不提供变量级或参数级提示;需配合ide-python与python-language-server才能实现函数参数、变量名等高级补全功能。

autocomplete-python 插件本身不带类型推导,只补全内置和模块名;要获得变量级、函数参数级提示,必须额外配 ide-python + python-language-server。
autocomplete-python 装了但没反应?先查 grammar 和启用状态
右下角状态栏显示的不是 Python,而是 Plain Text 或 Python (Jedi)?那补全根本不会启动。autocomplete-python 只响应 source.python scope,且依赖 language-python 插件正确识别语法。
- 点击右下角文字 → 选
Python(不是Python (Jedi)或Python (VirtualEnv)) - 确认
autocomplete-plus在 Settings → Packages 中是蓝色Enabled状态,不是灰色Install - 禁用所有名字含
autocomplete-atom-api、python-tools的旧插件——它们会覆盖getSuggestions方法,导致控制台报Uncaught TypeError: Cannot read property 'getSuggestions' of undefined
只装 autocomplete-python 补全很弱:缺变量/参数提示
它能补 os.path. 后的 join、dirname,但补不了你刚定义的 def fetch_data(url): 里 fetch_data( 后的 url 参数名。这是设计限制,不是配置问题。
- 要参数级补全,必须装
ide-python(它会自动拉取python-language-server) -
ide-python和autocomplete-python可共存,前者负责 LSP 协议通信,后者仍管基础模块名补全 - 装完
ide-python后,检查 Atom 底部状态栏是否出现Python Language Server连接图标;若显示 “disconnected”,说明pyls没装或路径不对(运行pip install python-language-server)
Tab 键不能直接补全?得改 keymap.cson
Atom 默认用 Enter 确认补全项,Tab 永远只缩进。想按 Tab 插入建议并跳转 placeholder(比如 print(${1:text})),必须手动绑定。
立即学习“Python免费学习笔记(深入)”;
- Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Win/Linux)→ 输入
Open Your Keymap - 在打开的
keymap.cson里加这段:
'atom-text-editor[data-grammar~="source.python"]:not([mini])': 'tab': 'autocomplete-plus:confirm'
注意:autocomplete-python 自身不提供 placeholder 占位符;真正支持 ${1:...} 跳转的是 python-snippets 插件。如果 Tab 补全后光标没停在括号里,说明这个插件没装或 scope 写错了(正确 scope 是 .source.python)。
补全卡顿或延迟高?别只调 delayTime
autocomplete-plus 的 Delay Time (ms) 配置只控制“等多久发请求”,不解决 provider 响应慢的问题。autocomplete-python 本身轻量,但一旦启用了 ide-python,卡顿基本来自 python-language-server 首次索引项目。
- 首次打开大项目时,等待几秒是正常的;后续会缓存,响应变快
- 若持续卡顿,检查是否开了
Enable Jedi选项(在autocomplete-python设置里)——Jedi 引擎比 pyls 更耗资源,建议关掉 - 禁用
autocomplete-html和autocomplete-css的 fuzzy search(它们在大型项目里容易拖垮主线程)
补全链路里最易被忽略的环节是 grammar 识别和 LSP 服务状态,而不是插件数量或 keymap 绑定。文件没被当成 Python,或者 pyls 进程根本没起来,调再细的 delayTime 也没用。



















