装 autocomplete-python 插件后需同时启用 autocomplete-plus、确保文件语法为 source.python、安装 ide-python 和 python-language-server 才能实现函数参数级补全,且 windows 用户必须重启 atom。

装 autocomplete-python 插件只是第一步,它本身不提供变量名、函数参数级补全 —— 想输 fetch_data( 后自动提示 url 和 timeout,必须额外配 ide-python + python-language-server。
确认 autocomplete-plus 已启用且没被劫持
autocomplete-python 依赖 autocomplete-plus 调度,但它自己不启动补全逻辑。很多人装完插件却没反应,卡在这一步:
-
autocomplete-plus必须是蓝色 Enabled 状态(Settings → Packages → 搜autocomplete-plus) - 禁用所有含
autocomplete-atom-api、ternjs(非atom-ternjs)、language-babel的插件 —— 它们会覆盖getSuggestions方法,控制台报Cannot read property 'getSuggestions' of undefined - Windows 用户务必重启 Atom:后台进程常驻,新插件不重启根本不加载
装对 provider 并确保文件被识别为 Python
autocomplete-python 只响应 source.python grammar,不是“装了就生效”,而是靠 Atom 的 activationHooks 触发:
- 右下角状态栏必须显示
Python(不是Python (Jedi)或Plain Text);点它手动切换 - 文件必须保存为
.py后缀,新建未保存文件默认是Plain Text,补全完全静默 - 离线安装时,检查
package.json中"activationHooks"是否为"language-python:grammar-used",且"main"指向的入口文件存在(大小写敏感)
补全弱?加 ide-python 实现参数级提示
autocomplete-python 只能补模块名和内置函数(如 os.path. 后的 join),但对你自己写的函数 def fetch_data(url, timeout=30):,它不会在 fetch_data( 后提示参数。这是设计限制,不是配置错误:
- 必须装
ide-python(它会自动拉取并管理python-language-server) - 装完后看 Atom 底部状态栏是否有 Python Language Server 连接图标;若显示
disconnected,说明python-language-server没装或路径不对:pip install python-language-server -
autocomplete-python和ide-python可共存 —— 前者管基础模块补全,后者管类型推导与参数提示
Tab 键不插入补全项?改 keymap.cson
Atom 默认用 Enter 确认补全项,Tab 永远只缩进。想按 Tab 插入并跳转占位符(比如 print(${1:text})),必须手动绑定:
- 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 自身不提供 ${1:} 占位符支持;真正实现光标跳转的是 python-snippets 插件,scope 必须匹配 .source.python。
最容易被忽略的点是:补全能力不是“装插件”这一个动作决定的,而是 autocomplete-plus + provider + grammar + LSP server(如需) 四者同时在线 —— 少一个,补全就退化一级,甚至完全消失。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











