Python ST3:如何使用插件&x27;宏中的命令?

Python ST3:如何使用插件&x27;宏中的命令?,python,macros,sublimetext,sublimetext3,Python,Macros,Sublimetext,Sublimetext3,在Sublime Text 3中,我想创建一个宏,用于粘贴当前文件的“来自项目的相对路径,已编码”,这是一个由优秀用户提供的命令 我已经激活了控制台日志记录来完成我的实验: 打开控制台(Ctrl-`) sublime.log\u命令(True) 当我执行要捕获的操作时,我在控制台中看到: command: side_bar_copy_path_absolute_from_project_encoded command: paste Unknown macro command side_ba

在Sublime Text 3中,我想创建一个宏,用于粘贴当前文件的“来自项目的相对路径,已编码”,这是一个由优秀用户提供的命令

我已经激活了控制台日志记录来完成我的实验:

  • 打开控制台(
    Ctrl-`
  • sublime.log\u命令(True)
当我执行要捕获的操作时,我在控制台中看到:

command: side_bar_copy_path_absolute_from_project_encoded
command: paste
Unknown macro command side_bar_copy_path_relative_from_project_encoded
但是,当我记录操作时,保存时生成的json是:

[
    {
        "args": null,
        "command": "paste"
    }
]
如果我手动破解宏(从和中获取参数提示):

…然后播放宏,我在控制台中看到以下内容:

command: side_bar_copy_path_absolute_from_project_encoded
command: paste
Unknown macro command side_bar_copy_path_relative_from_project_encoded
(我还尝试将
null
作为
侧栏\u复制\u路径\u相对\u来自\u项目\u编码的
的参数)


我是否需要在宏命令中引用包或类名?有什么建议吗?

耶哈!我明白了-我相信宏可能不支持所有命令,所以我尝试了一个插件:

import sublime, sublime_plugin

'''
    Paste the current file's Relative Path From Project (Encoded).
    Requires https://github.com/titoBouzout/SideBarEnhancements to be installed

    First save this file as:
    ~/Library/Application Support/Sublime Text 3/Packages/User/paste-path.py

    More details about writing plugins:
    http://docs.sublimetext.info/en/latest/reference/plugins.html

    To trigger the command with 'Command Option Shift p',
    add the following to your Sublime Text > Preferences > Keybindings - User

    [
        { "keys": ["super+option+shift+p"], "command": "paste_path"}
    ]
'''

class PastePathCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.window.run_command("side_bar_copy_path_relative_from_project_encoded", {"paths": []})
        self.window.run_command("paste")
以下是要点:


编辑:对不起,信息不完整!您需要将此文件保存为类似以下内容:

~/Library/Application Support/Sublime Text 3/Packages/User/paste path.py


更多信息:

ST宏仅支持文本命令。我对有人在ST论坛上发布的插件做了一些修复,以运行任何类型的命令。有关详细信息,请参阅。我最初的意图是构建一些东西来替换默认的宏功能,但没有找到一种捕获所有键、命令等的好方法。我确实希望这样做,但当我将您提供的命令复制到我的Keybindings-User文件中时,它不起作用。之前的代码
导入升华,升华插件
和最后调用的
是怎么回事?对不起,我遗漏了一些重要的细节!这是编辑过的我的答案…oops,时间太长,无法编辑我的评论:…这是一个插件,而不是键绑定、首选项、代码段、命令或宏。崇高是用python编写的
run_command()
是在sublime或sublime_插件中定义的函数,因此这些(函数?类?)被包括在最上面。我不是专家,但它对我有用:)祝你好运!(编辑我的答案)