Engee 文档

脚本编辑器

脚本编辑器 interactive script icon - 是一个 Engee 工作区工具,专为处理交互式脚本而设计。

交互式脚本*(或简称脚本)是一个文件,其中包含多个按顺序执行的命令。

要打开 脚本编辑器 ,请单击工作区中的interactive script icon 图标:

img36a

使用脚本

创建脚本

要创建脚本,请在脚本编辑器中按下 + 并选择所需的格式:

img36c cn-> img36c 1 cn

默认情况下,Engee 脚本为 ngscript 格式,但也可以使用 jlipynb 格式:

  • jl "是 Julia 脚本的格式。脚本编辑器支持重构和运行这种格式的脚本;

  • ipynb` 是一种通用的 Python 脚本格式。脚本编辑器支持与 ngscript 相同级别的所有可用功能。

您可以使用文件浏览器file browser 7 创建脚本。为此,在文件浏览器窗口的空白区域单击右键,弹出右键菜单,然后选择 创建脚本

script saving cn

打开现有脚本

在文件浏览器窗口中打开现有脚本:

  • 用鼠标左键双击脚本;

  • 右键单击脚本,在右键菜单中选择 揭示

    img36b cn

脚本编辑器部分

在脚本编辑器中,您可以创建代码单元格或文本单元格。

要创建单元格,请将鼠标指针移至脚本编辑器窗口的上边缘,以显示单元格选择按钮:

script editor 1 cn

  • + 代码 - 创建一个包含代码的新部分(代码单元格)。在该单元中,可以使用编程语言 Engee 编写代码。

  • + 文本 - 创建带文本的新部分(文本单元格)。在该单元格中,您可以添加和格式化任何说明、图片、表格、链接等。

新章节可添加到脚本编辑器工作区的任何位置(如开头、结尾或两个其他章节之间)。

代码部分

让我们创建一个代码段,看看它的界面:

img52 cn

  1. 执行和导航 - 执行指定部分的代码。

  2. 执行完成 - 执行代码低于所选部分的所有部分。

  3. 执行到单元格 - 执行代码位于所选部分上方的所有部分。

  4. 更改代码结果的位置 - 选择输出位置。有两个选项:

  5. 面罩 - 为选定的代码单元格添加遮罩(详见代码单元掩码 )。

  6. 向下移动 - 将部分向下移动一个位置。

  7. 向上移动 - 上移一节。

  8. 复制 - 复制部分。

  9. 插入 - 粘贴部分。

  10. 删除 - 删除部分。

在代码单元格中,您还可以

  • 执行高亮显示的代码段(高亮显示行上的 PCM 或hotkeyShift+F7 )和执行突出显示的 :

    code sting completion cn

  • 用光标执行当前行(Windows/Linux 上为Ctrl+Shift+F5 ,macOS 上为Shift++F5 )。

文本部分

处理文本单元格时,使用默认的 WYSIWYG(所见即所得)编辑器。有关使用编辑器标记文本的更多信息,请访问链接

让我们创建一个包含文本的部分:

img44 cn

双击该部分打开输入框,然后在出现的单元格中输入所需的文本。

img44 1 cn

在文本格式设置方面,使用了标记语言Markdown,还可以使用HTMLLaTeX扩展功能。有关文本格式标记的更多信息,请参阅文章Engee 中的文本标记在 Engee 中使用 Markdown

让我们来看看文本框界面:

text interface script cn

  1. script editor text 1 - 取消最后一个操作

  2. script editor text 2 - 重复上次取消的操作

  3. script editor text 3 - 对选定文本应用粗体字

  4. script editor text 4 - 斜体显示所选文本

  5. script editor text 5 - 对文本应用删除线效果

  6. script editor text 6 - 设置标题级别(H1-H6)

  7. script editor text 7 - 创建带项目符号或编号的列表

  8. script editor text 8 - 超链接

  9. script editor text 9 - 将文本格式设置为引用

  10. script editor text 10 - 将文本突出显示为代码片段

  11. script editor text 11 - 添加复选框以跟踪任务

  12. script editor text 12 - 在高亮部分加下划线

  13. script editor text 13 - 单行字体

  14. script editor text 14 - 突出显示文本背景

  15. script editor text 15 - 更改文本颜色

  16. script editor text 16 - 添加备注块

  17. script editor text 17 - 添加隐藏部分

  18. script editor text 18 - 插入图片

  19. script editor text 19 - 添加表格

  20. script editor text 20 -编辑模式,从三种模式中选择一种:

    • script editor text 20 - 所见即所得可视化编辑器,立即显示格式,无需标记语言(默认,推荐使用)

    • script editor text 21 - Markdown 标记,手动编辑源文本

    • script editor text 22 - 显示结果(预览),无法编辑

与代码部分类似,在文本单元格中使用以下命令:移动、复制、粘贴和删除。

单元格隐藏和内容

要在 Engee 脚本编辑器中隐藏单元格,文本单元格必须使用 Markdown 标记为段落,并具有适当的级别和位置:

  • 单元格必须包含从第 1 到第 6 层的 Markdown 格式标题(# 等)。

  • 带有低级标题的单元格必须位于顶级标题的下方。

interactive par 01 cn

您可以在脚本编辑器中将其隐藏:

  • 代码单元格(标题级别最低);

  • 无标题的文本单元格(也是最低一级);

  • 有低级标题的文本单元格。

    interactive scripts par 3 cn

例如,如果带有一级标题的文本单元格下面有 10 个代码单元格,这就形成了一个将被隐藏的部分。当第 11 个单元格出现时—​一个带有一级标题或与第一个文本单元格同级的新段落—​一个新的部分就开始了。

第一至第六级文本单元格标题构成 目录 content button 1

in scripts par cn

在内容中,您可以

  • 添加嵌套段落 content button 2 - 为文本单元格添加上一级标题。例如,如果在第一级文本格 ()中添加嵌套段落,它将成为第二级文本格 (#)。当达到最大嵌套量时(最后一个文本单元格有一个第六级标题),按钮将不可用。

  • 开始一段 content button 3 - 开始执行所有包含所选段落代码的单元格。如果段落不包含任何代码单元格,则按钮不可用。

  • 删除该段 content button 4 - 删除所选段落。嵌套在段落中的标题和代码单元格不会被删除。

启动/停止脚本

要启动或停止脚本,请单击 运行脚本停止执行 。这些按钮位于脚本启动面板上:

img53 cn

要运行包含代码的部分,请单击 执行 。结果将显示在该部分下方:

img 49 1 cn

您可以将代码执行输出折叠成更紧凑的形式,以防占用过多空间。为此,请使用 极限输出 colapse button 按钮:

in long hide 1 cn

要将输出恢复到先前状态,请使用按钮 公开结论 colapse button 2

要清除脚本中代码段的执行结果,请单击脚本启动面板上的 明确的结果 图标。

img62 cn

保存脚本

要保存脚本,请单击脚本启动面板上的 节省 图标。

img5a cn

如果计划在第三方系统(如 Jupyter)中打开用 Engee 编写的脚本,建议使用 Engee 文件浏览器更改已保存脚本的扩展名:

img5 1 cn

高级设置

脚本编辑器 提供了许多高级设置,有助于简化代码和文本处理工作。在处理大文件、并行编辑脚本或文本文件时,这些设置将非常有用。

要访问这些设置,请单击脚本编辑器右上角的三联图标:

script editor other settings 1 cn

自动保存

自动保存 功能可让您自动保存对交互式脚本的更改,防止数据丢失:

scripts autosaving 1 cn

有三种自动保存选项可供选择:

  1. afterDelay - 在一定的延迟时间后自动保存脚本。选择此选项时,默认延迟时间为 1000 毫秒。

  2. onFocusChange - 脚本在编辑器失去焦点后自动保存。这意味着切换到另一个 Engee 窗口时,脚本编辑器中的更改将被保存;

  3. onWindowChange - 从打开 Engee 的浏览器标签页切换到另一个标签页时,脚本将自动保存。这意味着,当您将浏览器标签页从 Engee 切换到任何其他标签页时,脚本编辑器中的更改将被保存。

按文本文件中的文字进行传输

在下列情况下,高级设置菜单中会显示 按文本文件中的文字进行传输 功能:

script editor other settings 3 cn

  • 如果打开的是文本文件;

  • 如果脚本编辑器为空(未打开文件)。

在其他情况下,功能被隐藏。

按文本文件中的文字进行传输 功能可在文本文件中实现逐字文本传输(*不要与文本单元格*混淆)。这意味着文本文件(格式如 .txt 或 .json)中的行会自动移动到新行,而无需水平滚动:

功能开启

功能关闭

script editor other settings 5 cn

script editor other settings 4 cn

两个扬声器

script editor other settings 6 cn

两个扬声器 功能可启用双栏模式,将编辑器窗口分为两部分。这样就可以同时打开和编辑两个交互式脚本:

script editor other settings 2 cn

列的宽度可以轻松调整:将光标放在列之间的边界上,按下鼠标左键并将分隔线拖到所需的一侧:

script editor other settings x cn

屏蔽代码单元格

脚本编辑器 代码单元支持将代码单元中的变量转化为方便的交互式元素—​下拉列表、输入框、滑块和其他控制组件。为此,代码单元格屏蔽机制可用于改善脚本的可视化显示、隐藏技术实现细节和简化数据输入。

要应用遮罩,请使用工具 面罩 masks script pool 1 ,该工具会在您将鼠标悬停在代码单元格上时出现:

masks script pool 2 cn

有关掩码类型、设置和手动操作的更多信息,请参阅代码单元掩码

断点

Engee*编辑器支持在代码单元中添加断点。这在调试脚本时非常有用—​代码执行会在所需行暂停,这样就可以逐步检查程序的行为并发现错误。

要设置断点,请将光标放在所需行的左边界上,然后单击鼠标左键:

adding breakpoints

要设置条件、删除或暂时禁用断点,可以使用上下文菜单(红点上的 PCM)。 Engee 提供不同类型的断点:基本断点、条件断点、延迟执行断点等。触发条件可通过表达式、迭代次数或对其他点的依赖性来设置。

有关使用断点的更多信息,请参阅脚本编辑器断点

程序控制方法

使用公共方法(详见计划管理的公共方法 )可以控制 Engee 脚本,而无需使用脚本编辑器界面。这些命令专为脚本编辑器文件设计,通过 engee.script 调用。让我们逐一了解这些方法:

@include - 包含(嵌入)脚本代码,而不是调用宏。

例如,我们有一个名为 new.ngscript 的脚本,其中写有代码 a = 1。让我们创建另一个脚本 new_1.ngscript,在其中通过 @include 引用第一个脚本的绝对路径:

engee.script.@include("/user/new.ngscript")

第一个脚本的代码执行结果 a = 1 将包含在第二个脚本中,并等于 1

@include 命令和它嵌入的代码不能在同一个脚本中。否则,当 @include 必须调用自身时,将发生循环依赖错误。
edit - 打开脚本供编辑。

打开指定路径下的脚本供编辑。如果没有脚本文件,则会自动创建。

engee.script.edit("/user/new.ngscript")
如果指定的扩展名不是".ngscript",则会产生 "ErrorException("path should end with.ngscriptextension")` 错误。
extract_code - 提取指定路径下的代码。

从指定路径的脚本中提取代码。例如,代码为 a = 1 的脚本 new.ngscript:

engee.script.extract_code("/user/new.ngscript")

输出:

:($(Expr(:toplevel, :(#= none:1 =#), :(a = 1))))

有关脚本中使用的其他公共方法的更多信息,请参阅软件控制建模 一文。