【发布时间】:2025-12-08 00:25:01
【问题描述】:
我试图找到命令、插件或任何可以做到这一点的东西。基本上我需要两个键盘快捷键。一个复制当前文件路径(只有当前目录,不是文件名)。另一个只复制文件名(带有扩展名,例如“test.txt”)。
【问题讨论】:
标签: windows sublimetext3 sublimetext
我试图找到命令、插件或任何可以做到这一点的东西。基本上我需要两个键盘快捷键。一个复制当前文件路径(只有当前目录,不是文件名)。另一个只复制文件名(带有扩展名,例如“test.txt”)。
【问题讨论】:
标签: windows sublimetext3 sublimetext
您可以使用这样的简单插件来完成此操作(如果您不确定如何安装,请参阅此video on using plugins in Sublime):
import sublime
import sublime_plugin
import os
class CopyFilePathCommand(sublime_plugin.TextCommand):
def run(self, edit, name=False):
path, filename = os.path.split(self.view.file_name())
sublime.set_clipboard(filename if name else path)
self.view.window().status_message(
'Copied file %s' % ("name" if name else "path"))
def is_enabled(self, name=False):
return self.view.file_name() is not None
这实现了一个名为 copy_file_path 的命令,默认情况下会将当前文件的路径复制到剪贴板,如果您将 true 传递给 name 参数的值,则切换到复制文件的名称.
状态栏中会显示一条消息,告诉您复制了哪些内容,并且该命令将为尚未保存到磁盘的任何文件禁用自身(因为它因此没有复制路径)。
示例键绑定可能如下所示:
{ "keys": ["ctrl+shift+alt+p"], "command": "copy_file_path", "args": {"name": false}},
{ "keys": ["ctrl+shift+alt+f"], "command": "copy_file_path", "args": {"name": true}},
【讨论】:
ctrl+shift+alt+f,并且当我为其分配另一个快捷方式时它可以正常工作。
sublime.log_commands(True) 和/或 sublime.log_input(True)`;每当您按下一个键以及执行一个命令时,它都会记录下来。你可以使用它来查看 Sublime 是否看到了密钥,如果看到了,它看到了什么,以及它对你 udid 的反应如何。