0

0

sublime如何快速复制当前文件完整路径到剪贴板?(终端/脚本调用)

穿越時空

穿越時空

发布时间:2026-01-14 21:38:03

|

867人浏览过

|

来源于php中文网

原创

Sublime Text 默认不支持复制文件绝对路径,需通过SideBarEnhancements插件或自定义插件实现;未保存文件返回临时路径,CLI无法反向查询当前打开文件。

sublime如何快速复制当前文件完整路径到剪贴板?(终端/脚本调用)

Sublime Text 里没有内置快捷键直接复制完整文件路径

默认安装的 Sublime Text 不提供「复制当前文件绝对路径」的菜单项或命令,你右键文件标签、侧边栏或通过 Ctrl+P 搜索都找不到这个功能。这不是你漏看了设置,而是它真没做——得靠插件或手动调用命令补足。

用 Package Control 安装 SideBarEnhancements 插件最省事

这是最成熟、兼容性最好的方案,支持 Windows/macOS/Linux,且不依赖 Python 环境配置。

  • Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板
  • 输入 Package Control: Install Package 回车,等待列表加载
  • 搜索 SideBarEnhancements 并回车安装
  • 安装完成后,右键侧边栏中的文件 → Copy > Full Path 即可复制形如 /Users/you/project/main.py 的完整路径

注意:该命令只对侧边栏中已显示的文件生效;如果文件未保存(标题栏显示 untitled),会复制一个临时路径如 /var/folders/.../Untitled-1,不是真实磁盘路径。

想在终端或脚本里直接获取当前 Sublime 打开的文件路径?不行,Sublime 不暴露进程级文件状态

Sublime Text 没有提供类似 VS Code 的 code --locate 或 Atom 的 atom --get-editor-process 这类 CLI 接口。它的命令行工具 subl 只能用于打开文件,不能反向查询当前打开内容。

  • subl --help 输出里没有任何「query」、「get」、「status」类子命令
  • 试图用 lsof -p $(pgrep -f 'sublime_text')ps aux | grep sublime 查看打开文件,通常只能看到启动时传入的参数,无法反映 Tab 切换后的实时编辑文件
  • 如果你在写自动化脚本,必须换思路:改用文件监听(如 inotifywait + 保存钩子),或让 Sublime 通过插件写日志到临时文件再读取

自己写个简单插件实现「一键复制路径」并绑定快捷键

如果你不想装大插件,又需要键盘操作(比如 Ctrl+Alt+C 直接复制),可以手写一个极简插件:

BlessAI
BlessAI

Bless AI 提供五个独特的功能:每日问候、庆祝问候、祝福、祷告和名言的文本生成和图片生成。

下载
import sublime
import sublime_plugin
import subprocess
import os

class CopyFilePathCommand(sublime_plugin.TextCommand): def run(self, edit): file_name = self.view.file_name() if file_name:

macOS / Linux

        if os.name == 'posix':
            subprocess.run(['pbcopy'], input=file_name.encode(), check=True)
        # Windows
        elif os.name == 'nt':
            subprocess.run(['clip'], input=file_name.encode(), check=True)

保存为 ~/Library/Application Support/Sublime Text 3/Packages/User/copy_file_path.py(macOS)或对应路径,然后在 Preferences > Key Bindings 里加一行:

{ "keys": ["ctrl+alt+c"], "command": "copy_file_path" }

⚠️ 注意点:

  • macOS 上依赖 pbcopy(系统自带),Windows 依赖 clip.exe(Win7+ 自带),Linux 需要先装 xclipxsel 并把命令改成对应二进制名
  • 未保存文件的 self.view.file_name() 返回 None,插件不会报错但也不会复制任何内容——这点容易被忽略
  • Sublime 插件运行在主线程,subprocess.run 是同步阻塞的,对大文件无影响,但别在里面跑耗时操作

路径复制这事看着小,但一旦涉及未保存文件、多光标、远程文件系统(如 WSL2 路径映射)、符号链接解析,就很容易掉坑里。动手前先确认你的使用场景到底卡在哪一环。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

752

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

758

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

706

2023.08.11

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号