Python ST3:如何使用插件&x27;宏中的命令?
在Sublime Text 3中,我想创建一个宏,用于粘贴当前文件的“来自项目的相对路径,已编码”,这是一个由优秀用户提供的命令 我已经激活了控制台日志记录来完成我的实验: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
- 打开控制台(
)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_插件中定义的函数,因此这些(函数?类?)被包括在最上面。我不是专家,但它对我有用:)祝你好运!(编辑我的答案)