sublime中不存在listpaths插件,所谓教程均属杜撰或混淆;真正可用的路径导出方式只有三种原生方法:copy_file_path命令(当前已保存文件绝对路径)、find in files+copy paths(匹配文件路径列表)、控制台执行python脚本(项目根或打开文件路径)。

Sublime 里根本没有 ListPaths 插件
别再搜 “ListPaths” 了,Package Control 和官方仓库里压根不存在这个插件。所有声称“安装 ListPaths 就能一键导出项目路径”的教程,要么是名称杜撰,要么混淆了 SideBarEnhancements 的功能。强行下载同名 zip 或手动注册,大概率触发 ImportError 或控制台静默失败。
真正可用的路径提取方式只有三种,且全部原生支持、无需额外依赖:
-
copy_file_path命令:只作用于当前已保存文件,输出 POSIX 风格绝对路径(如/home/user/project/main.py),未保存的untitled标签页会返回空 - Find in Files +
Copy Paths:在 Find Results 面板中右键才有该选项,前提是 Where 填了有效路径(比如.或./src),结果是所有匹配文件的绝对路径,每行一个 - 控制台执行 Python 脚本:用
window.folders()列项目根目录,用[v.file_name() for v in window.views() if v.file_name()]列所有已保存打开的文件路径
SideBarEnhancements 的 Copy Path 是最稳的右键方案
如果你需要频繁从侧边栏点一下就复制路径,SideBarEnhancements 是目前唯一长期维护、无副作用、跨平台一致的方案。
它装完即用,右键任意文件/文件夹会出现:
-
Copy Path:输出操作系统原生格式(Windows 用\,macOS/Linux 用/),可直接粘贴进终端 -
Copy Relative Path:仅当项目已加载(菜单栏 Project 下有 Save Project As…)才有效,输出相对于项目根的路径,比如src/api/client.ts -
Copy File Name:只复制文件名,不含路径,适合批量重命名或生成清单
注意:Copy Path 复制的是符号链接的目标真实路径,不是链接本身;它不处理 node_modules 这类排除规则,大项目下可能输出上千行——这不是 bug,是设计使然。
Find in Files 提取路径时 Why 的 Where 很关键
很多人用 Ctrl+Shift+F 搜 .* 想“列出所有文件”,结果发现没反应,或者只扫了当前文件——问题全出在 Where 栏。
必须手动填路径,留空 = 只搜当前文件;填错格式 = 扫不到任何东西:
- 填
.:扫描整个项目根目录(要求已通过Project → Add Folder to Project加载) - 填
./src/**/*.js:只扫 src 下所有 .js 文件,支持 glob 通配 - 填
/absolute/path/to/project:绕过项目加载限制,但路径需写全,且不同系统斜杠方向要对
搜索后,在 Find Results 面板右键 → Copy Paths,粘贴出来就是干净路径列表。如果结果带前缀(比如 src/utils/:1:export default …),说明你误点了 Copy 而不是 Copy Paths——前者复制整行内容,后者只取路径部分。
复制路径后常被忽略的编码与换行问题
路径本身看似简单,但粘贴到脚本或终端时出错,往往不是正则或命令的问题,而是剪贴板里混入了不可见字符。
常见陷阱:
- 路径末尾带
\r\n(尤其 Windows 编辑器另存为时选了 CR+LF),导致 Bash 报No such file or directory - 文件名含中文或 emoji,而目标终端或脚本默认用
latin-1解码,路径变成乱码 - 用
Ctrl+C在 Find Results 面板复制时,若面板未聚焦,可能只复制了部分行,漏掉最后几条
建议操作链:Ctrl+Shift+F → 输入 ^(空正则,强制匹配所有行)→ Where 填 . → Copy Paths → 粘贴到新文件 → Ctrl+H 替换 \r 为空 → 保存为 UTF-8 编码。这一步省不了,尤其当你准备把路径喂给 xargs 或 Python open() 时。











