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

交互性

by ichichikin ST3

交互性允许您在Sublime Text编辑器内直接运行本地shell命令和脚本,并在您的编写内容旁边提供输出。使用您喜欢的工具,如Python、Node.js、Java、Perl、PHP、bash或任何其他REPL。

详细信息

  • 0.0.2
  • github.​com
  • github.​com
  • 1个月前
  • 2小时前
  • 1个月前

安装

  • 总数 17
  • Win 8
  • Mac 7
  • Linux 2
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 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Mac 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Linux 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

自述文件

源代码
raw.​githubusercontent.​com

Sublime Text的交互性:运行Python、Node.js、Java、Perl、PHP、bash或其他任何REPL

请在Sublime Text论坛上自由提问有关插件的问题!

交互性允许您在Sublime Text编辑器内直接运行本地shell命令和脚本,并在您的编写内容旁边提供输出。使用您喜欢的工具,如Python、Node.js、Java、Perl、PHP、bash或任何其他REPL。

例如,如果您在记笔记的同时需要快速计算项目的预算,您可以在编辑器中键入数字并按Enter键在希望的REPL中执行代码

错误:不支持语言“markdown”
## Mike's rate is $120. Thus, it will cost us:

@120*8*21*12+8000
249920

安装

通过Package Control安装Interactivity软件包,请按照以下步骤进行:

  1. 安装Package Control(如果您还没有安装的话)

    • 打开Sublime Text。
    • 通过按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)访问命令面板。
    • 输入Install Package Control并按Enter
  2. 安装插件

    • 再次按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)打开命令面板。
    • 输入Package Control: Install Package并按Enter
    • 在软件包列表中输入Interactivity并选择它进行安装。

Python模块集合

我喜欢的日常工具有Python,这就是为什么我在这个插件中包含了几个代码示例。

  • chat.py 将ChatGPT直接集成到编辑器中。请记住设置OpenAI API密钥
  • tables.py 将Excel和CSV表格导入到编辑器中。

这些模块需要以下依赖项:openaipandastabulate

您可以使用以下命令进行安装:pip install openai pandas tabulate

以下是演示它们如何工作的例子

Demo

Sublime Text中模块中的可用函数

chat.py

  1. chat(prompt: str, system: str = None, save_context: bool = True, model: str = 'gpt-3.5-turbo') -> None

    • 参数
      • prompt (str): 要发送到ChatGPT的用户查询。
      • system (str, 可选): 可选的系统提示。
      • save_context (bool, 可选): 是否保存聊天内容以保持连续性。默认为 True
      • model (str, 可选): 聊天要使用的模型。默认为 'gpt-3.5-turbo'
    • 输出: 直接在编辑器中打印助手的响应。
  2. chat4(prompt: str, system: str = None, save_context: bool = True) -> None

    • 参数
      • prompt (str): 发送到 ChatGPT 4o 的用户查询。
      • system (str, 可选): 可选的系统提示。
      • save_context (bool, 可选): 是否保存聊天内容以保持连续性。默认为 True
    • 输出: 直接在编辑器中打印助手的响应。
  3. clean_chat() -> None

    • 输出: 通过重置存储的消息清理聊天历史。此函数在编辑器中不产生直接输出。

tables.py

  1. excel_table(path: str, *args, **kwargs) -> None

    • 参数
      • path (str): Excel 文件的路径。
      • *args: 于 pandas.read_excel 传递的可选的额外位置参数。
      • **kwargs: 于 传递的可选的额外关键字参数。
    • 输出: 读取 Excel 文件并将其直接在编辑器中打印为 markdown 表格。
  2. csv_table(path: str, *args, **kwargs) -> None

    • 参数
      • path (str): CSV 文件的路径。
      • *args: 于 传递的可选的额外位置参数。
      • **kwargs: 于 传递的可选的额外关键字参数。
    • 输出: 读取 CSV 文件并将其直接在编辑器中打印为 markdown 表格。

自定义函数

您可以将您自己的 Python 脚本添加到插件目录中的 py_modules 目录内。这些脚本中的所有全局函数和变量都将可在编辑器中访问。欢迎您贡献您喜欢的语言中的新有用脚本。

设置

使用您的首选配置编辑插件目录中的 Interactivity.sublime-settings 文件。示例设置

指定任何 Shell 可执行文件的路径。使用 ##plugin## 来引用插件目录。

"shell": "python",

定义启动 Shell 后要运行的命令。在此处指定 chat.py 模块的 OpenAI API 密钥。

"startup_commands": "openai.api_key = 'sk-'",

定义关闭 Shell 之前要运行的命令。

"shutdown_commands": "exit()",

指定 Shell 命令行参数。使用 ##plugin## 来引用插件目录。

"shell_params": [
   "-qi",
   "##plugin##modules/py_manager.py"
],

设置环境变量。使用 ##plugin## 来引用插件目录。

"enviroment_variables": {
   "PYTHONIOENCODING": "utf8"
},

指定要跳过的初始行数(例如,Shell 感谢语)。

"lines_to_suppress": 0,

在输出前添加自定义文本。

"prepend_output": " ",

在输出后添加自定义文本。

"append_output": "",

应用 RegExp 匹配模式来过滤输出。

"output_filter": "^(?:(?:>>> )|(?:\\.\\.\\. ))+"

定义用于运行命令的文本快捷键。条目的键是快捷键;条目的值是执行的命令。使用 ##param## 包括快捷键后的文本行在命令中。

"text_shortcuts": {
   "@": "##param##",
   "@@": "chat4(r\"\"\"##param##\"\"\")"
}

除了使用快捷键,您还可以通过选择文本的任何部分并按绑定到包的 Interactivity 命令的 Sublime Text 快捷键 来执行 Shell 执行。

理解快捷键

使用 text_shortcuts 设置定义文本快捷键以运行特定命令。'-' 后的文字是快捷键;文字之后的命令要执行。使用 ##param## 包括快捷键后的文本行在命令中。

示例 1

错误:"plaintext" 语言不受支持
@ -> ##param##
  • @:这是您在编辑器行的开头输入的快捷键。
  • ##param##:这包括同一行中快捷键后的文本。这实际上允许您直接将任何文本插入到命令中。

这种设置允许您直接将输入的文本作为命令执行。

示例 2

错误:"plaintext" 语言不受支持
"text_shortcuts": {
   "@@": "chat4(r\"\"\"##param## \"\"\", system=\"Use markdown and emojis.\")"
}
  • @@:这是您在编辑器行的开头输入的快捷键。
  • chat4(r\"\"\"##param## \"\"\", system=\"使用markdown和emoji.\"):此命令以特定参数调用chat.py中的chat4函数。

让我们分解一下参数:- r\"\"\"##param## \"\"\":这包括了同一行上的快捷键后面的文本。 - system=\"使用markdown和emoji.\":这设置了聊天的系统提示。

使用此快捷键,您可以使用预定义的设置快速启动与ChatGPT的聊天,使您的工作流程更高效。

设置Python集成

您可以通过将自定义Python脚本添加到插件目录中的py_modules目录来增强功能。这些脚本中的所有全局函数和变量都将可在编辑器中使用。

安装Python

  • Windows:python.org下载安装程序并按照安装说明操作。请确保在安装过程中将Python添加到PATH。
  • Linux:使用您的包管理器安装Python。例如,在Ubuntu上:sudo apt-get install python3
  • macOS:使用Homebrew安装Python:brew install python3

查找Python可执行路径

要在终端中查找Python可执行路径,请运行以下命令

which python3

将此命令的输出用作shell设置中的路径。

一切设置妥当后,您可以从Sublime Text调用Python代码。

错误:"plaintext" 语言不受支持
@import numpy as np
@200 % (10 + 365) / np.e
73.57588823428847

@chat('How are you doing?')
I'm doing well, thanks for asking! How about you? What's on your mind today?

@@How are you doing?
I'm doing well, thank you for asking! How about you? How's your day going?

如果您也使用Obsidian

查看Interactivity: Calculations and Scripts for Obsidian

贡献

欢迎贡献!请提交一个pull request或打开一个issue来讨论任何更改。

许可

本项目采用MIT许可协议。