copy file path命令仅对已保存的本地文件生效,未保存标签页(状态栏显示untitled)或插件视图(如git diff预览)会静默失败;命令名必须为全小写带下划线的copy_file_path,绑定快捷键需注意平台差异(macos用super+alt+c),右键菜单需手动配置。

能直接用的只有 Copy File Path 命令,其他所谓“一键右键”“自动识别未保存文件”都是错觉或插件行为——它只对已保存的本地文件生效,且不带引号、不加转义。
为什么 Copy File Path 有时没反应?
不是命令坏了,是当前标签页没资格被复制:
- 状态栏显示
untitled或窗口标题是Untitled—— 没保存过,view.file_name()返回None,命令直接静默退出 - 当前视图来自插件(如 Git diff 预览、REPL 控制台、Snippet 预览页),哪怕看起来像文件,也无磁盘路径
- 文件虽已保存,但路径含符号链接(比如
/usr/local/bin/subl是链接),Copy File Path复制的是目标真实路径,不是链接本身——这不算错,但可能不符合预期
Copy File Path 和 Copy Relative Path 别搞混
两者名字像,行为完全不同,且生效条件互斥:
-
Copy File Path:输出绝对路径,如/home/user/project/src/main.py或C:\work\app\index.html;不需要项目支持,只要文件已保存就可用 -
Copy Relative Path:只在通过Project → Add Folder to Project明确设置了项目根目录后才有效;输出类似src/utils/helper.ts;没设项目时运行,结果为空,也不报错——这点特别容易让人误以为“功能坏了” - 命令面板里搜
copy会同时列出两个,务必看清全名再回车,输copy path可能匹配到别的插件命令
怎么给 copy_file_path 绑快捷键?
原生命令没默认快捷键,手动绑定时三处最容易写错:
- 命令名必须是
copy_file_path(全小写+下划线),写成copyfilepath、CopyFilePath或copy-file-path都无效 - Windows/Linux 推荐用
ctrl+alt+c;macOS 必须用super+alt+c(super= Cmd 键),直接套用 Windows 键位在 macOS 上不触发 - 改完
Preferences → Key Bindings右侧用户配置后,不用重启 Sublime,但旧标签页要重新聚焦或新开一个才能响应新快捷键
正确配置示例:
[{"keys": ["ctrl+alt+c"], "command": "copy_file_path"}]
想右键就复制?得自己加菜单项
Sublime 原生不提供右键菜单入口,这不是遗漏,是设计如此。要加进去,得手动编辑上下文菜单:
- 打开
Preferences → Context Menu - 在
Tab Context.sublime-menu(当前标签页右键)或Side Bar.sublime-menu(侧边栏右键)里插入一行:[{"command":"copy_file_path","caption":"Copy File Path"}] - 注意 JSON 格式:逗号不能多也不能少,
command值必须是copy_file_path,不是菜单上显示的文字;加完保存即可生效
SideBarEnhancements 插件确实能补这个缺,但它只对侧边栏选中的文件生效,对编辑区当前激活的标签页无效——这点常被忽略。











