Atom代码补全需分别配置snippets.cson(定义补全内容与scope)、keymap.cson(控制触发时机与按键行为)、config.cson(调整provider参数),且修改后必须手动重载窗口才生效。

Atom 的代码补全规则不能靠“全局开关”一键修改,所有自定义行为都必须通过编辑特定配置文件实现——snippets.cson 控制补全词(如 for 展开成循环)、keymap.cson 控制触发时机(如只在函数调用后按 Ctrl+Space 弹出)、config.cson 控制 provider 行为(如开启模糊匹配)。改错文件、写错路径或 scope,补全就静默失效。
snippets.cson:写对 scope 和 body 才能生效
这个文件决定你输入 log 后按 Tab 能否展开成 console.log($1);。它不是插件,是 Atom 原生读取的纯文本规则。
-
snippets.cson必须放在~/.atom/snippets.cson(macOS/Linux)或%USERPROFILE%\.atom\snippets.cson(Windows),放错路径 Atom 完全无视 - scope 必须精确匹配当前语法环境:JavaScript 是
source.js,JSX 是source.js.jsx,Vue 模板是text.html.vue;写成javascript或.source.js都无效 - body 中占位符编号必须从
$1开始连续递增:$1→$2→$3;跳号(只有$1和$3)或重复(两个$1)会导致Tab跳转错乱 - 多行内容用三重单引号
'''包裹,首行缩进要和body:对齐,顶格写会解析失败
keymap.cson:控制什么时候弹、按什么键确认
默认 Tab 只缩进,Enter 才确认补全项;想让 Tab 插入建议并跳转占位符,或者只在 . 后自动补属性,就得改这个文件。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 想让
Tab确认补全(比如print($1)后光标停在括号里):在keymap.cson里加一行'atom-text-editor[data-grammar~="source.python"]:not([mini])': 'tab': 'autocomplete-plus:confirm' - 想限制补全只在函数调用位置触发(避免字符串里乱弹):加规则
'.source.js .meta.function-call.js': 'ctrl-space': 'autocomplete-plus:activate' - 所有 selector 必须用真实 scope,查法是
Ctrl+Shift+P→ 输入Editor: Log Cursor Scope,看控制台输出的完整链,比如source.js.jsx meta.function-call.js
config.cson:调整 provider 行为而非 autocomplete-plus 本身
很多人误以为在 autocomplete-plus 设置页勾选 “Fuzzy Search” 就能模糊匹配,其实它只对 provider 返回的候选做二次排序。真正起作用的是各 provider 自己的配置项。
- 启用
atom-ternjs的模糊匹配:在 Settings → Packages →atom-ternjs→ 勾选Use Fuzzy Matching;不勾选,输log就永远补不出console.log - 让
autocomplete-python支持模糊:需手动编辑~/.atom/packages/autocomplete-python/settings/autocomplete-python.cson,添加'autocomplete-python': 'fuzzy': true - 禁用补全干扰:在
config.cson里设'autocomplete-plus': 'showSuggestionsOnKeystroke': false,彻底关闭自动弹窗,只靠快捷键手动唤出
最易被忽略的点是:所有配置文件修改后,Atom 不会自动重载。改完 snippets.cson 或 keymap.cson,必须手动 Ctrl+Shift+P → 输入 Window: Reload,否则改动等于没写。scope 写错、路径放错、没重载——这三件事占了 90% 的“配置了但没反应”。

















