钩子
在常见事件钩子上运行Sublime命令(例如:on_new, on_post_save)。
详细信息
安装
- 总数 5K
- Win 1K
- Mac 2K
- Linux 1K
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Linux | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
自述文件
sublime-hooks
在常见事件钩子上运行 Sublime 命令(例如:on_new
,on_post_save
)。
此工具是为了给其他 Sublime 插件提供事件级别的绑定。
我的用途是在保存时通过 request(via sublime-request)向服务器发送请求。结果是
"on_post_save_user": [
{
"command": "request",
"args": {
"open_args": ["http://localhost:7060/"]
},
"scope": "window"
}
]
入门
安装
此包可在 Package Control 中的 hooks
下访问,这是一个允许轻松管理其他插件的 Sublime Text 插件。
如果您喜欢手动安装,可以通过以下命令在Sublime Text终端(ctrl+`
)中安装脚本,该终端使用git clone
。
import os; path=sublime.packages_path(); (os.makedirs(path) if not os.path.exists(path) else None); window.run_command('exec', {'cmd': ['git', 'clone', 'https://github.com/twolfson/sublime-hooks', 'hooks'], 'working_dir': path})
可以通过“Package Control: Remove Package”通过命令框安装包,在Windows/Linux上按ctrl+shift+p
,在Mac上按command+shift+p
。
创建一个新的钩子
在这个练习中,我们将创建一个在保存后选择全部文本的绑定。
钩子可以在用户
、项目
或语言
级别添加。我们将添加一个用户
级别的钩子。
要编辑用户
设置,打开命令框,并选择“首选项:设置 - 用户”。
在打开的首选项中,为on_post_save_user
创建一个以下值的新键值对
"on_post_save_user": [
{
"command": "select_all"
}
]
然后,保存两次(一次保存设置,另一次触发插件)。
到此步骤,所有的文本都将被选择,表明钩子和命令已运行。
用户、项目和语言钩子的示例可以在下面找到。
文档
钩子存储在用户
、项目
或语言
设置中。每个都期望一个字典列表。这些字典满足以下条件
command
(必需),Sublime在列表中指定的scope
通过run_command
运行命令。args
(可选),传递给 . 的参数字典。与“键绑定”中的args
相当。scope
(可选),表示在哪里运行command
的字符串。默认情况下,命令在view
中运行。其他选项是window
和app
,分别在window
和sublime
层次上运行。
"on_post_save_user": [
{
// Runs `request` command
"command": "request",
// Invokes `request` with `open_args=["http://...:7060/"]`
"args": {
"open_args": ["http://localhost:7060/"]
},
// Runs `request` via `window.run_command`
"scope": "window"
}
]
访问设置
通过命令面板中的“首选项:设置 - 用户”访问 User
设置。
通过菜单栏中的“项目 -> 编辑项目”访问 Project
设置。您必须处于已保存的项目中,否则此选项不可用。
通过“首选项 -> 设置 - 更多 -> 语法特定 - 用户”访问 Language
设置。这将为打开的文件中的语言打开特定的设置。
命名空间
钩子在 User
、Project
或 Language
层次上是必需的。密钥将是 event_name
后跟其 _level
。
命名空间是 _user
、_project
和 _language
。
演示目的
- 在
Project
层级的on_new
钩子将是on_new_project
- 在
Language
层级的on_load
将是on_load_language
事件
对于 Sublime Text 2 和 3,你可以访问以下事件
on_new
on_clone
on_load
on_close
on_pre_save
on_post_save
on_activated
on_deactivated
对于 Sublime Text 3,你可以访问
on_new_async
on_clone_async
on_load_async
on_pre_close
on_pre_save_async
on_post_save_async
on_activated_async
on_deactivated_async
每个钩子的文档可以在 Sublime Text 文档中找到
Sublime Text 2 - https://text.sublime.net.cn/docs/2/api_reference.html#sublime_plugin.EventListener
Sublime Text 3 - https://text.sublime.net.cn/docs/3/api_reference.html#sublime_plugin.EventListener
出于潜在的性能问题,排除了一些不在这些列表上的事件(例如 on_modified
、on_text_command
)。
示例
User
在用户的 .sublime-settings
中定义 User 设置应处于顶层。这可以通过命令面板中的“首选项:设置 - 用户”或菜单中的“首选项 -> 设置 - 用户”访问。
// Inside Packages/User/Preferences.sublime-settings
{
"ignored_packages": [
// ...
],
"on_post_save_user": [
{
"command": "select_all"
}
]
}
Project
在当前 .sublime-project
中的 settings
下定义 Project 设置。这可以通过命令面板中的“项目:编辑”或菜单中的“项目 -> 编辑”访问。
// Inside my-project.sublime-project
{
"folders": [
// ...
],
"settings": {
"on_post_save_project": [
{
"command": "select_all"
}
]
}
}
Language
在语言 .sublime-settings
的顶层定义 Language 设置。这可以通过菜单中的“首选项 -> 设置 - 更多 -> 语法特定 - 用户”访问。
// Inside my-language.sublime-settings
{
"extensions": [
// ...
],
"on_post_save_language": [
{
"command": "select_all"
}
]
}
捐赠
通过 gittip 支持此项目和 twolfson 的其他项目。
Unlicense
自 2013 年 9 月 4 日起,Todd Wolfson 已经将此存储库及其内容释放到公共领域。
它已经发布在 UNLICENSE 下。