ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

xonsh

作者: eugenesvk ST4

xonsh 语法高亮显示(适用于 Sublime Text)

详细信息

  • 0.2.1
  • github.com
  • github.com
  • 11个月前
  • 2小时前
  • 3年前

安装次数

  • 总数 115
  • Windows 30
  • Mac 42
  • Linux 43
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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Mac 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

自述文件

源代码
raw.githubusercontent.com

Sublime Text 4 的软件包,用于Python 驱动的 shell xonsh
通过扩展默认的 Python 软件包,添加 xonsh 特定的环境

介绍

此软件包通过以下 xonsh 特定环境扩展默认 Python 软件包的语法定义,以增加对 xonsh 语言(针对具有 .xsh.xonshrc 扩展名的文件)的支持:

  • 变量:$variableA,包括环境 ${...}
  • 子进程运算符:$() $[] ${} @() @$()(和 !() ![]
  • 搜索函数:@functionB`search_string`
  • 内置函数:abbrevs() aliases() compilex() execx() evalx() events() print_color() exit() printx()

... 并复制所有其他相关元素(代码片段、注释、完成规则、缩进规则、符号列表和默认快捷键映射)并将它们重命名为在 xonsh 语法中工作

安装

  • 通过 Package Control:打开 命令面板包管理控制:安装包xonsh
                                            Ctrl/⌘Cmd⇧ShiftP

  • 手动:将该存储库克隆到您的 包目录 并将其重命名为 xonsh

cd /path/to/sublime/packages/directory
git clone https://github.com/eugenesvk/sublime-xonsh.git
mv sublime-xonsh xonsh

用法

打开任何 xonsh 文件(例如 syntax_example_screen.xsh)并验证所选语法为 Xonsh 以及 xonsh 特定环境是否已正确作用域[1]并突出显示,可能如下(取决于您的颜色方案)

xonsh syntax screenshot solarized

xonsh syntax screenshot default

[1]: 作用域命名应遵守默认 Python 包和 ST 的作用域命名指南

支持的语法示例:变量

| 示例 | 描述 | :————– | :———- | $ | 匹配单个变量定义符号以帮助完成 | $varA=[1,2] | 普通变量 | $varA[0] | 变量索引 | $varA[$varB] | 索引内的变量 | funct($varB) | 函数内的变量 | f"{$varA}" | 函数字符串内的变量 | ${...} | 环境本身

支持的语法示例:子进程操作符

示例 描述
@$(which ls) 命令置换
@('echo', 1) Python 评估
$(echo 1) 捕获的子进程
!(echo 1)
$[echo 1] 未捕获的子进程
![echo 1]

暴露的作用域

作用域名列表

| xonsh 构造 | 作用域名称 | :———— | :———- | 变量 | meta.variable.xonsh
variable.other.xonsh variable.other.env.xonsh variable.other.env.ellipsis.xonsh
punctuation.definition.variable.xonsh | 命令置换 | meta.interpolation.command.xonsh meta.parens.interpolation.command
keyword.operator.subprocess.pyeval.xonsh keyword.operator.subprocess.xonsh
punctuation.section.parens. begin/end .xonsh | Python 评估 | meta.interpolation.command.xonsh meta.parens.interpolation.command
keyword.operator.subprocess.pyeval.xonsh
punctuation.section.parens. begin/end .xonsh | 捕获的子进程 | meta.interpolation.command.xonsh meta.parens.interpolation.command
keyword.operator.subprocess.captured.xonsh
punctuation.section.parens. begin/end .xonsh | 未捕获的子进程 | meta.interpolation.command.xonsh meta.brackets.interpolation.command
keyword.operator.subprocess.uncaptured.xonsh
punctuation.section.brackets. begin/end .xonsh | 搜索函数 | meta.function-call.xonsh meta.function-call.arguments.xonsh meta.string.xonsh
string.quoted.backtick.xonsh
punctuation.definition.annotation.xonsh punctuation.section.string. begin/end .xonsh punctuation.section.arguments. begin/end .xonsh

快捷键

此插件为 xonsh 作用域添加了两个快捷键:"/'自动匹配双/单引号,即使在字符串修改符之后也是如此

已知问题

  • 仅在构建 4075 (2020 年 7 月 10 日) 或之后的 Sublime Text 4 中工作,因为它使用了 meta_append/meta_prepend API
  • 在子进程模式下合法但在 Python 模式下非法的 Python 名称无关紧要,因为 Python 和子进程模式之间没有区分
    例如,在 echo "$HOME" as well as '$HOME' 中使用 as
    作为解决方案,请使用 "引号"或对 source.xonsh invalid.illegal.name 错误突出显示进行淡化/删除

致谢

默认软件包的语法文件(PythonBashPHP),以及 fish