文档 菜单
Sublime Merge 中的菜单由以 .sublime-menu 结尾的文件定义。菜单使用 JSON,顶层结构为数组。每个绑定都是一个 JSON 对象,包含定义菜单项文本及其应执行的操作的信息。
示例
以下是 .sublime-menu 文件格式的示例。
[
{
"caption": "File",
"mnemonic": "F",
"id": "file",
"children":
[
{ "command": "new_window", "caption": "New Window" },
{ "command": "close_window", "caption": "Close Window" },
{ "caption": "-", "id": "exit" },
{ "command": "exit", "caption": "Exit", "mnemonic": "x", "platform": "Windows" },
{ "command": "exit", "caption": "Quit", "mnemonic": "Q", "platform": "Linux" },
]
}
]
条目
每个菜单项都是一个 JSON 对象,包含一个或多个键。支持的键列表包括
- "caption"
- 菜单项的文本
- "mnemonic"
-
用作激活条目的键的字符。仅适用于 Windows 和 Linux。必须与
"caption"
中字符的大小写匹配。 - "command"
- 激活条目时要执行的命令的字符串
- "args"
- 发送到命令的 args 的 JSON 对象
- "children"
- 用于创建子菜单的条目 JSON 数组
- "id"
-
菜单条目的唯一字符串。用于具有
"children"
的菜单条目,以允许添加其他子条目。 - "platform"
-
以下字符串之一:
"OSX"
、"!OSX"
、"Windows"
、"!Windows"
、"Linux"
或"!Linux"
。控制在哪些平台上显示条目。
每个菜单项至少需要 "caption"
键(用于非功能性条目)或 "command"
键(用于执行操作的条目)。
可用菜单和变量
Sublime Merge 有 14 个可以自定义的菜单。菜单具有可以在 "caption"
和 "args"
字段中使用的上下文变量。
可用变量
以下上下文变量在所有菜单中都可用
- $working_dir
- 仓库工作目录的路径
- $git_dir
- git 目录的路径,即 .git/
- $commit
- 所选提交的完整哈希值
- $short_commit
- 所选提交的简短哈希值
- $head
- 头部的分支名称或提交哈希值
- $head_ref
- 分支名称或
HEAD
(处于分离头状态时)
可用菜单
支持自定义的菜单是
- Main.sublime-menu
- 应用程序的主菜单
- Action.sublime-menu
-
工具栏中搜索右侧
...
按钮的菜单 - Advanced Commit.sublime-menu
- 提交按钮右侧向下箭头按钮的菜单
- Branch Section.sublime-menu
-
位置选项卡中
标题的上下文菜单 - Branch Folder.sublime-menu
-
位置选项卡中分支文件夹的上下文菜单
上下文变量
- $branch
- 分支文件夹名称
- $ref
- 部分分支文件夹引用
- Branch.sublime-menu
-
位置和提交选项卡中分支的上下文菜单
上下文变量
- $branch
- 分支名称
- $ref
- 分支引用
- Commit.sublime-menu
-
提交选项卡中提交的上下文菜单
上下文变量
- $commit
- 完整的提交哈希值
- $short_commit
- 简短的提交哈希值
- Diff Context.sublime-menu
-
差异控件的上下文菜单
上下文变量
- $path
- 相对于仓库的文件路径
- $line
- 选择的行
- $col
- 选择的列
- File Mode Context.sublime-menu
- 对文件权限更改的上下文菜单
- File.sublime-menu
-
文件标题右侧
...
按钮的菜单上下文变量
- $path
- 相对于仓库的文件路径
- Hunk.sublime-menu
-
块标题右侧
...
按钮的菜单上下文变量
- $path
- 块的相对于仓库的文件路径
- Unmerged File.sublime-menu
-
- $path
- 相对于仓库的文件路径
- Untracked File.sublime-menu
-
- $path
- 相对于仓库的文件路径
- Modified File.sublime-menu
-
- $path
- 相对于仓库的文件路径
- Index File.sublime-menu
-
- $path
- 相对于仓库的文件路径
- Remote Section.sublime-menu
-
位置选项卡中
标题的上下文菜单 - Remote.sublime-menu
-
位置选项卡中远程的上下文菜单
上下文变量
- $remote
- 远程名称
- Remote Branch Folder.sublime-menu
-
位置选项卡中远程分支文件夹的上下文菜单
上下文变量
- $branch
- 远程分支文件夹名称
- $ref
- 远程分支文件夹的部分引用
- Remote Branch.sublime-menu
-
位置和提交选项卡中远程分支的上下文菜单
上下文变量
- $branch
- 远程分支名称
- $ref
- 远程分支引用
- Stash Section.sublime-menu
-
位置选项卡中
标题的上下文菜单 - Stash.sublime-menu
-
位置和提交选项卡中暂存区的上下文菜单
上下文变量
- $stash
- 暂存区索引
- Submodule Section.sublime-menu
- 位置选项卡中子模块标题右侧齿轮图标的菜单
- Submodule.sublime-menu
-
位置选项卡中子模块的上下文菜单
上下文变量
- $submodule_name
- 子模块名称
- $submodule_path
- 子模块路径
- Tag Section.sublime-menu
-
位置选项卡中
标题的上下文菜单 - Tag.sublime-menu
-
位置选项卡中标签的上下文菜单
上下文变量
- $tag_name
- 标签名称
- $ref
- 标签引用
- Remote Tag.sublime-menu
-
专用于远程命令的标签的上下文菜单。此菜单对每个远程启用,无论该标签是否在远程上存在。
上下文变量
- $tag_name
- 标签名称
- $ref
- 标签引用
- $remote
- 远程名称
- Widget Context.sublime-menu
-
各种面板中文本输入的上下文菜单。从技术上讲,此文件名可以通过 Widget.sublime-settings 中的
"context_menu"
设置进行更改。
添加到子菜单
使用条目的 "id"
键,可以将条目添加到子菜单中。添加子菜单条目时,仅指定父条目的 "id"
和 "children"
键,并将 "children"
的值设置为要追加到子菜单的条目数组。
例如,要将运行 git gc
的条目添加到 菜单,请创建一个类似于以下的条目
[
{
"id": "repository",
"children":
[
{
"caption": "Cleanup Repo",
"command": "git",
"args": {"argv": ["gc"]}
}
]
}
]
要查找条目的 "id"
,请参阅 Default.sublime-package 包中的 Main.sublime-menu 文件。有关如何查找包并查看内容的信息,请参阅 Packages 文档。
自定义
用户可以通过在他们的 Packages/User/ 目录中创建一个适当命名的文件来自定义可用的菜单。
如果您不确定 Packages/User/ 目录在哪里,您可以通过 Sublime Merge 中的 轻松访问它。
示例
要自定义位置选项卡中远程的上下文菜单,请创建一个名为 Packages/User/Remote.sublime-menu 的文件。添加以下内容将创建一个条目,该条目将修剪陈旧的引用。
[
{
"caption": "Prune",
"command": "git",
"args": {"argv": ["remote", "prune", "$remote"]}
}
]