autocomplete-paths默认不递归扫描子目录,仅检查项目根目录下一级文件;解决方法为将图片放根目录或在config.cson中配置core.projecthome指向含资源的父路径。

autocomplete-paths 插件默认不递归扫描子目录,所以 src="assets/images/icon.png" 这类路径根本不会出现在补全列表里——这不是插件坏了,是它压根没去 assets/images/ 里找。
为什么 autocomplete-paths 补不全 src 里的嵌套路径
它只扫描项目根目录下一级的文件(比如 index.html、logo.png),不会进 assets/、src/img/、public/icons/ 这些子路径。这是硬编码行为,不是配置能打开的开关。
- 检查你敲的是不是
src="、href="、——只有这些属性名才会触发路径补全 - 确认当前文件语法是
text.html.basic或source.css,不是text.plain(右下角看) - 别指望
custom-path="./xxx"或自定义属性能被识别,它只认白名单里的几个属性
让子目录图片也能被补全的两种实操方式
不用改源码,也不用换插件,就两个轻量办法:
- 把常用资源(尤其是图片)直接放在项目根目录下,比如
icon.png、bg.jpg,输src="i就能立刻补全 - 在
config.cson里显式指定core.projectHome指向含资源的父路径,例如:core:<br> projectHome: "/Users/me/my-website"
确保该路径下有assets/或images/目录,插件会从这里开始扫描一级子目录
补全没反应?先盯住这三处
常见现象:敲完 src=" 光标静止,零提示。大概率卡在这三个地方:
-
autocomplete-plus没启用:Settings → Packages → 搜autocomplete-plus,必须是蓝色Enabled - 当前文件 grammar 错了:右下角显示
Plain Text?点它,手动切到HTML或CSS - 被其他插件干扰:比如同时装了
emerald-html和官方language-html,作用域冲突会导致路径提供者完全不激活
比 autocomplete-paths 更适合现代项目的替代思路
如果你用 Vue/React/JSX,或者项目里有 Webpack alias(比如 @/assets/),autocomplete-paths 就彻底失效——它根本不读 webpack.config.js 或 jsconfig.json。
- 需要模块级路径感知?换
autocomplete-modules,它能解析import和require,也支持 alias 配置 - 要深度 HTML 属性补全(比如自动闭合标签、补全
img的alt)?atom-autocomplete-tags比原生更稳 - 补全本身没问题但预览总加载错路径?关掉
atom-html-preview,用npx live-server+ 浏览器 Network 面板验证真实请求 URL
真正容易被忽略的点是:路径补全和运行时路径是两件事。补全再准,如果构建工具没把 assets/images/ 正确拷贝进输出目录,浏览器照样 404。别只盯着编辑器,得一起看打包产物结构。











