生命期
Sublime Text 3的一个插件,用于Sublime Text的内部控制台
详细信息
安装
- 总计 88K
- Win 48K
- Mac 19K
- Linux 21K
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日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 8 | 2 | 1 | 5 | 6 | 1 | 5 | 3 | 3 | 6 | 1 | 2 | 5 | 2 | 2 | 5 | 2 | 2 | 3 | 6 | 2 | 2 | 3 | 4 | 4 | 4 | 5 | 6 | 6 | 3 | 4 | 3 | 6 | 8 | 7 | 4 | 3 | 1 | 2 | 2 | 2 | 3 | 2 | 3 | 2 |
Mac | 2 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 3 | 1 | 0 | 1 | 2 | 1 | 0 | 0 | 0 | 2 | 2 | 1 | 0 | 2 | 1 | 0 | 1 | 1 | 0 | 1 | 2 | 1 | 0 | 2 | 0 | 2 | 4 | 0 | 1 | 0 | 0 | 2 | 2 | 1 | 1 | 1 | 0 | 0 |
Linux | 1 | 1 | 1 | 0 | 2 | 0 | 2 | 0 | 1 | 1 | 0 | 2 | 0 | 2 | 3 | 1 | 2 | 0 | 2 | 2 | 2 | 1 | 0 | 1 | 2 | 0 | 1 | 0 | 3 | 4 | 2 | 2 | 0 | 1 | 1 | 3 | 0 | 1 | 0 | 3 | 1 | 2 | 2 | 2 | 0 | 0 |
README
生命期
Sublime Text 3的一个插件,用于Sublime Text的内部控制台
分支 | ||
---|---|---|
release | ||
master (develop) |
什么是生命期
生命期是一个插件,允许Sublime Text作为终端使用。这包括从/to Sublime Text的缓冲区的输入和输出。虽然生命期可以运行许多命令,但它**并不保证**可以用于所有命令。
命令是基于语言的。当前版本支持以下语言...
- C
- 编译和运行
- C++
- 编译和运行
- Lua
- 运行
- Python
- 以Python 2运行(
python
命令) - 以Python 3运行(
python3
命令)
- 以Python 2运行(
- Rust(感谢@divinites)
- 运行
- Ruby
- 运行
- Swift(仅限OS X)
- 运行
这样就结束了?不,生命期允许您添加自己的命令在Sublime Text内部使用。请参阅下面的部分以获取更多信息。
如何使用它?
只需按Ctrl+Key+R
,菜单就会出现,让您选择要运行的命令。
如果您要向命令传递参数(具体取决于每个命令如何使用参数),请按Ctrl+Key+Shift+R
代替。这将让您首先选择命令,然后要求您输入参数。
Key
在Windows和Linux上是Alt
,在Mac上是Cmd
注意!此键绑定与SFTP冲突。您可能需要自己覆盖它。
设置
生命期使用一个非常复杂的设置系统,您可以在其中控制设置如何影响整个Sublime Text或您想要控制的每个项目。
如您可能已经知道,您可以通过在用户设置文件中设置所需的设置来覆盖默认设置(可以通过首选项 > 包设置 > 生命期 > 设置 - 用户
访问)。
但是,如果您想覆盖特定项目的设置,您可以在.sublime-project文件中添加terminality
字典。在这个字典下,它就像一个用户的设置文件,但适用于该项目。
总结一下,Terminality首先会查找项目设置文件中的任何设置,然后是用户设置文件,最后是默认的包设置。
Terminality如何帮助我的当前工作流程?
好问题!您可能认为Terminality只是一个插件,显示您已经知道的命令列表。当然,这确实是它的核心功能,但Terminality并不止于此。以下是一些Terminality可以为您做的事情……
- 在项目中运行测试
- 独立构建和运行项目,不影响其他项目
- 根据您的项目或当前文件动态运行Sublime Text的命令
- 一键部署项目
- 还有更多……
我如何创建自己的命令并将其与Terminality一起使用?
您可以通过仅使用设置中的execution_units
密钥来覆盖命令,从而创建用于Terminality的自己的命令。
或者,如果想要创建和分享一些自己的Terminality命令,请使用集合(请参阅下面的集合部分)。
在v0.3.7或之前版本中,您必须在
additional_execution_units
中设置。
在v0.3.8或更高版本中,additional_execution_units
已弃用,并在v0.4.0中将被删除。
// Settings file
{
// ... Your other settings ...
"execution_units": {
// ... See Language Scopes section belows ...
},
// ... Your other settings ...
}
语言作用域
Terminality使用Sublime Text的语法语言作用域,您可以在按Ctrl+Alt+Shift+P
(Windows和Linux)和Ctrl+Shift+P
(OSX)时在状态栏中找到它。
语言作用域部分是一个字典,其中包含为指定语言作用域可用的命令。
语言作用域的键是一个简单的指定作用域名称。如果您想使命令对所有语言都可用,只需简单地使用*
作为语言作用域。
您不能覆盖默认的语言作用域。然而,您可以通过设置值为非字典类型(如0
)来删除该语言作用域的默认命令。
"<Language Scope>": {
// ... See Commands section belows ...
}
命令
命令部分是一个字典,包含有关如何运行命令的信息。
命令的键是一个简单的想要用作命令引用的命令名称(如果没有指定name
密钥,这将用作命令名称)。
您可以通过使用要覆盖的命令的确切命令引用名称来覆盖命令(包括默认的)。您还可以通过设置值为非字典类型(如0
)来删除命令。
每个键是可选的(下面在限制/规则部分有例外),其含义如下……
name
[宏字符串] 命令的名称(显示在菜单中)。description
[宏字符串] 命令的描述(在菜单中作为子标题显示)。order
[字符串] 用于对菜单进行排序的字符串。location
[宏字符串] 运行命令的位置路径。required
[列表] 必须在运行命令之前设置的宏名称列表(如果没有设置任何宏,则命令不会运行)。arguments
[字符串] 询问参数输入时显示的文本。command
[宏字符串] 定义要运行的宏字符串。window_command
[宏字符串] 定义要运行的Sublime Text的窗口命令(包括您已安装的任何插件)。view_command
[宏字符串] 用来定义Sublime Text中将要执行的可视化命令(仅在该视图内运行的命令)的宏字符串。args
[字典] 将传递给window_command
或view_command
的字典。字典值中的每个宏都将递归解析。platforms
[列表] 支持的平台列表。格式为<os>-<arch>
、<os>
或<arch>
(os
和arch
来自Sublime Text的sublime.platform()
和sublime.arch()
命令)。no_echo
[布尔值] 指定输入是否会回显(false
)或不会(true
)。read_only
[布尔值] 指定执行的视图是否可以接收用户的输入(false
)或不能(true
)。close_on_exit
[布尔值] 指定当命令结束时是否关闭该视图(true
)或不会(false
)。macros
[字典] 包含自定义宏定义的字典。请参阅下面的“自定义宏”部分。
"<Command Reference>": {
"name": "<Command Reference>",
"description": "<Command Name> command",
"order": "<Command Name>"
"location": "$working",
"required": [],
"arguments": "Arguments",
// You can use only one of "command", "window_command" or "view_command"
"command": "<No default value>",
"window_command": "<No default value>",
"view_command": "<No default value>",
// "args" will only use with "window_command" and "view_command"
"args": {},
"platforms": [<No default value>],
"no_echo": false,
"read_only": false,
"close_on_exit": false,
"macros": {}
}
限制/规则
- 除了
required
内的宏名之外,每个宏名都应该有$
前缀。 - 每个操作必须只包含
command
、window_command
和view_command
中的一个(其他可以省略) location
、no_echo
、read_only
和close_on_exit
仅适用于command
args
仅适用于window_command
或view_command
请参阅Terminality的用户设置文件中的示例(以及Terminality的.sublime-project文件本身的示例!)。
预定义宏
file
:当前正在工作文件的路径
file_relative
:file
的相对路径file_name
:file
的名称working
:这将使用working_project
,如果未找到,则使用project
,如果仍未找到,则使用parent
working_relative
:working
的相对路径working_name
:working
的名称working_project
:包含当前工作文件的项目文件夹
working_project_relative
:working_project
的相对路径working_project_name
:working_project
的名称project
:第一个项目文件夹
project_relative
:project
的相对路径project_name
:project
的名称parent
:包含当前工作文件的父文件夹
parent_relative
:parent
的相对路径parent_name
:parent
的名称packages_path
:Sublime Text的包文件夹路径raw_selection
:最后选择的原始文本selection
:最后选择的文本(去除了换行符等)arguments
:通过参数输入传递的文本sep
:路径分隔符(/
或\
,取决于您的操作系统)$
:$
符号
自定义宏
您可以通过将每个宏添加到您的执行单位的macros
部分中来创建自定义宏,以便与自定义命令一起使用。每个宏是一个键值对,其中键指示宏名(a-zA-Z0-9_
,不能有前缀$
),值是一个以下值的任意组合列表...
"文本和/或 $宏"
如果前一个值未找到,这将是一个解析后的字符串(不包含自递归)["开始:结束"]
这将从开始到结束提取前一个值(如果有)的子字符串["正则表达式模式", <可选捕获组>]
这将从匹配中返回指定的组(如果没有指定,则返回默认匹配)["文本和/或 $宏", "开始:结束"]
如果前一个值未找到,这将从开始到结束提取指定的字符串/宏的子字符串["字符串和/或 $宏", "正则表达式模式", 《可选捕获组》]
如果未找到前一个值,则将从指定的字符串/宏匹配中返回指定的分组(如果未指定,则返回默认匹配)。
子字符串与Python中的子字符串功能相同。您可以像您喜欢的那样省略start
或end
。
宏按顺序工作,如果当前宏未找到,则将查看下一个宏。
示例
"CustomMacro": [
"$file_name", // Get the file name from predefined macro
[":-4"], // Remove the last 4 characters (if value is found)
["$file", "\\w+"], // Get the result from parsing "$file" with RegEx if previous value is not found
"" // If nothing can be used, use empty string
]
集合
从v0.3.8版本开始实现
集合是一个包含Terminality命令的包,可以通过将其放置在用户
目录中来安装。
集合文件的结构非常简单,是一个具有.terminality-collections扩展名的JSON文件。文件中包含以下格式…
{
"execution_units": {
// ... See Language Scopes section aboves ...
}
}
请注意,集合不是一个设置文件(尽管它包含相同的键名)。任何其他键将完全忽略。