更新文档

This commit is contained in:
fofolee 2020-07-20 19:06:14 +08:00
parent 38691fe717
commit bb3888d8dc
7 changed files with 426 additions and 343 deletions

255
README.md
View File

@ -1,206 +1,137 @@
# 快捷命令 V2.0.0 (近期)
# 快捷命令 V2.0.0
## 简介
快速执行自定义的命令、脚本或模拟按键
- 自定义在 uTools 中快速执行的命令或脚本
### 更新
- 内置了执行 shell 命令、文本处理、文本替换、网址二维码等实用命令
#### v2.0.0 (预告)
- 支持在插件内下载别人分享的命令
- `模拟动作`模式改名为`quickcommand`
- 在 vm2 内运行,与插件环境隔离
- 支持使用nodejs/electron/utools的api
- 支持通过列表、多输入框、多按钮、文本框等多种形式获得用户的输入
- 现在和其他脚本一样可以针对输出进行不同处理或显示
- 封包了一些实用功能
- 现在添加按键通过监听按键进行添加,不再需要手动添加
- 预设动作添加跳转到指定插件,可以实现自定义插件关键字的功能
- 重写 sleep 函数,解决 utools 隐藏后延时不准的bug其实是electron的问题
- 新增支持运行C#,C脚本以及windows下可以通过wsl运行shell脚本
- 新增支持填写脚本参数,可以运行带参数的脚本
- 命令的输出实时动态显示,无需等到命令执行结束,插件高度根据输出内容自适应,带子输入框的情况下,输出自动滚动
- 可以在添加命令的界面直接运行当前代码进行测试
- 支持平台选项
- 支持给命令添加标签,进行分类
- 支持文件匹配,新增相应特殊变量
- 内置`文本处理``find GUI``下载uTools离线插件``特殊符号`等多个实用快捷命令,均使用新版本新增功能实现
- 适配暗黑模式UI改版
- 支持对文本和 HTML 的输出进行搜索
- 魔改codemirror代码编辑器增强
- 支持js、py代码格式化
- 新增cmd、applescript代码高亮原先用的shell的
- 支持代码提示和特殊变量提示其中cmd和shell支持提示和补全当前环境变量下的命令js和py支持智能提示其他语言支持关键字提示
- 支持vscode快捷键
- 新增一个feature脚本编辑器可以在选中脚本文件后快速进行编辑和运行测试
先写到这。。
#### v1.6.1
- 现在执行快捷命令时会现将uTools的高度设置为0如果有输出再展开
- 模拟动作模式增加支持`require` 😈😈
- 匹配主窗口输入模式下,会对输入的格式做简单校验
#### v1.6.0
- 修复php乱码
- 现在可以自定义输出的编码方式,脚本里选择`custom`
- 模拟操作模式的`+延时`合并到`+动作中`
#### v1.5.9
- 修复不能导入命令的bug
- 由于uTools 1.0.0版本匹配窗口时无法再使用正则,所以选择匹配窗口模式时,在填写进程时需填写进程全名,多个进程逗号隔开
- 忽略输出模式调整回自动隐藏窗口
- 更新示例命令库
#### v1.5.8
- 适配新版本
#### v1.5.7
- 添加`模拟操作`的功能,在`类型`下拉框内选取
- 该模式提供了模拟按键、打开文件、打开网站、定位文件、执行命令等实用功能
- 结合模拟按键和窗口匹配,可以实现针对不同的软件模拟不同的操作
- 该模式适用于没有编程基础的用户,只需要通过下拉框选取想要的功能,就可以快速编写一个简单的命令
- 该模式同样适用于本机没有任何语言环境的或环境变量失效的用户不需要安装nodejs即可执行js代码
- 虽然没有提供`特殊变量`的下拉框,但实际是支持的
- 脚本报错时提供跳转至临时脚本目录的选项
- 添加一个`下载命令`的按钮,可以跳转到[样例命令库]( https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections ),如果你不知道怎么去编写一个目录,可以尝试下载导入进行参考
- 貌似修复了执行完命令后再次呼出uTools会短暂显示命令关键词的bug该bug可能是由先隐藏uTools再退出插件所引起
![JU0UAS.png](https://s1.ax1x.com/2020/04/22/JU0UAS.png)
#### v1.5.1
- 修复macOS下新增命令界面排版错误的问题
- 修复macOS下使用shell脚本且发送输出结果到活动窗口时结果不正确的问题
#### v1.5.0
- 注意本次更新对多处代码进行了重写,如果原有命令在上一版运行正常,在这一版出现了一些问题,请重新编辑该命令,修改命令的模式。如原有命令中使用了{{input}}变量的,关键字会变成[object object],请重新编辑该命令,将命令调整为`主输入框正则匹配`,如果原有命令中使用了{{pwd}}等变量的,请重新编辑该命令,将命令调整为`通过uTools呼出前的窗口匹配`
- 原先命令自定了图标的,如果图标显示异常,重新选择设置一次图标即可
![JU08Xt.png](https://s1.ax1x.com/2020/04/22/JU08Xt.png)
##### 功能更新
- 新增`通过uTools呼出前的窗口匹配`的模式,现在可以快速编写一个应用到当前活动窗口的脚本
- 现在可以分别通过`关键字`,`主输入框正则匹配`,`活动窗口匹配`三种方式来调用自定义的脚本
- 新增一个特殊变量`当前窗口信息`,输出`json`格式的窗口相关信息,将原先的特殊变量`用户名`改为`本机唯一ID`方便针对不同电脑编写脚本两个变量均通过官方API获取
- 弃用原先模拟按键的方式获取资源管理器路径、选中文件、浏览器地址均借助官方API
- 新增`发送系统通知`的输出模式 By [imxiny](https://github.com/imxiny)
- 新增`在终端显示`的输出模式, 用以解决脚本需要显示动态输出的问题, 如 curl 命令 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/3)
- 上传一些命令至仓库的`CommandCollections`文件夹用以作为编写命令的样例同时大家可以提交PR丰富这个命令库 [CommandCollections](https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections)
##### BUG 修复
- 修复 php 无法输入 <? 问题修复MacOS环境变量问题修复脚本不能带参数问题 By [dofy](https://github.com/dofy)
- 修复中文乱码问题
- 修复当使用子输入框时,会多次触发脚本的问题 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/5)
- 修复当使用多行批处理脚本时,执行会报错的问题,该问题源于之前插件保存的批处理脚本的换行符是`LF`, windows 无法识别 [issue](https://yuanliao.info/d/424/70)
##### 用户体验
- 获取选中文本,以及输出方式为发送到活动窗口时不再覆盖用户剪贴板
##### 催更
- 之前了解到官方将出自动化插件,所以也有较长时间没有更新,在此以更催更
#### v1.1.0
- 新增支持获取子输入框变量,感谢@ghostbody
- 支持自定义解释器的路径
#### v1.0.0
- 上架 uTools 商店,去掉插件自带更新
- 精简了插件大小
- 可以自定义语言
#### v0.0.2
- 修复uTools更新后进入插件空白的BUG
- 添加Linux支持
- 修复导入BUG
- 修复说明为空时无法启用命令的BUG
- 添加全部导出和全部删除的功能
- 简单的代码编辑及运行功能
## 功能
#### 快速启动
### 1.内置命令
可以配置一些常用的命令,比如`回收站` `查看网络连接`之类
当前内置的命令有:`Windows Terminal 中打开``执行 shell 命令``文本处理``文本替换``vscode代码片段生成器``通过 find 查找文件``网址二维码`
![UTOOLS1556854200416.png](https://i.loli.net/2019/05/03/5ccbb5bb2c7d5.png)
![UaJD8U.png](https://i.imgur.com/SI21vCg.png)
![UTOOLS1556779310377.png](https://i.loli.net/2019/05/02/5cca91329a525.png)
![UJ3RyV.gif](https://s1.ax1x.com/2020/07/13/UJ3RyV.gif)
![UTOOLS1556779348048.png](https://i.loli.net/2019/05/02/5cca9155a2244.png)
### 2.导入、导出、分享命令
![UTOOLS1556779660316.png](https://i.loli.net/2019/05/02/5cca928f51905.png)
- 支持通过文件导入导出命令
- 支持通过剪贴导入导出命令
- 支持一键分享命令
- 支持在线获取及导入别人分享的命令
配合`uTools`的全局功能快捷键,可以达到一键启动的功能
![UfBox1.png](https://i.imgur.com/pKKWqdT.png)
#### 常用脚本
![UfDkdS.png](https://s1.ax1x.com/2020/07/20/UfDkdS.png)
如果为了一个小功能,就去编写一个插件,成本太高,本插件可以利用本地的脚本环境快速实现一些小功能。比如`base64转图片`
### 3.自定义命令
![UTOOLS1556779835126.png](https://i.loli.net/2019/05/02/5cca933de1883.png)
#### 基础
目前可以添加以下类型的脚本,但要注意的是**本插件未封装任何运行环境,需要本机安装了环境才能执行相应的脚本**
- 常用动作 (通过点击`+动作`按钮进行添加)
- 打开文件/文件夹/软件 (实现在主输入框启动自定义的软件名称及路径
- 在文件管理器中定位文件
- 用默认浏览器打开网址(实现类似网页快开的功能)
- 用 ubrowser 打开网址
- 执行系统命令
- 将内容写入剪贴板
- 发送系统消息
- 弹窗显示消息
- 发送文本到活动窗口
- 转至指定插件(实现自定义插件关键字)
- 添加延时
- 模拟按键 (通过点击`+按键`按钮进行添加)
![UTOOLS1556779901749.png](https://i.loli.net/2019/05/02/5cca938100c91.png)
![UawViR.png](https://s1.ax1x.com/2020/07/14/UawViR.png)
同时,本插件可以作为一个便捷的脚本仓库,因为所有的脚本都是多设备自动同步的,无须另外存储在硬盘中
#### 进阶
#### 输出处理
##### 匹配
如果脚本有输出,则可以对输出内容做如下处理
决定通过何种方式进入插件,不同的匹配模式也会影响插值变量的使用
- 忽略输出
- 显示纯文本输出 (不解析 html 内容)
- 显示html格式的输出 (可以进一步编写简单的 GUI 界面)
- 复制到剪贴板
- 发送到活动窗口(可以实现类似代码片段、常用短语之类的功能)
- 发送到系统通知
- 在终端中显示
- 关键字
- 在主输入框输入对应关键字进入插件,最通用的一种模式,关键字可以设置多个
- 正则/划词
- 正则匹配主输入框文本或唤出语音面板时选中的文本,可以获取输入框文本或选中文本作为变量
- 窗口/进程
- 匹配呼出 uTools 前或唤出语音面板时的活动窗口,可以获取窗口的信息或文件夹路径作为变量
- 复制/选中文件
- 匹配拖入主输入框的文件或唤出语音面板时选中的文件,可以获取复制及选中的文件信息作为变量
#### 插值变量
![UY3i7D.png](https://s1.ax1x.com/2020/07/13/UY3i7D.png)
如果你仔细看了上面例子中的脚本,一定会发现很多脚本里都有`{{}}`格式的变量
##### 环境
- quickcommand
- 可以快速执行打开网址、软件、文件夹、模拟按键等高频动作的命令
- 可使用nodejs、electron、uTools、quickcommand 的 api 来编写具有 UI 交互的脚本,详情查看插件内的文档
- python、cmd、shell 、php 等环境
- 本机装了相应环境即可执行相应的脚本
- 可以通过插值变量增强脚本的功能
- 支持 10+ 语言
- 可以通过 custom 手动设置解释器路径、参数、脚本后缀及编码方式
![UawKsO.png](https://s1.ax1x.com/2020/07/14/UawKsO.png)
##### 插值变量
本插件内置了一些特殊的插值变量,可以获取一些特殊的值,能够加入到插件里的任意脚本中
全模式可用
- `{{isWin}}` 是否是window系统
- `{{isWin}}` 是否Window系统 返回1或0
- `{{LocalId}}`本机唯一ID
- `{{BrowserUrl}}` 浏览器的当前链接
- `{{ClipText}}` 获取剪贴板的文本
- `{{SelectText}}` 获取选中的文本
- `{{subinput}}`获取子输入框的文本
- `{{SelectText}}` 获取选中的文本 (已弃用)
- `{{subinput}}`获取子输入框的文本,具有此变量时会在进入插件时自动启动子输入框
窗口模式可用
匹配**窗口/进程**时可用
- `{{pwd}}` 资源管理器或访达的当前目录
- `{{SelectFile}}` 获取选中的文件
- `{{WindowInfo}}`当前窗口信息
- `{{SelectFile}}` 文件管理器选中的文件,不支持 Linux
- `{{WindowInfo}}`当前窗口信息,返回 JSON 格式字符串
- 可以使用类似 `{{WindowInfo.id}}`的格式来直接读取相应的值
正则匹配模式可用
匹配**正则/划词**时可用
- `{{input}} ` 获取uTools主输入框的文本
- `{{input}} ` 获取主输入框的文本
插值使用示例
匹配**复制/选中文件**时可用
![tfoJsJ.png](https://s1.ax1x.com/2020/06/08/tfoJsJ.png)
- `{{MatchedFiles}}` 匹配的文件,返回 JSON 格式字符串
- 可以使用类似`{{MatchedFiles[0].path}}`的格式来直接读取相应的值
![tfoNZR.png](https://s1.ax1x.com/2020/06/08/tfoNZR.png)
##### 输出
如果脚本有输出,则可以对输出内容做如下处理
- 隐藏并忽略输出
- 显示纯文本输出 (不解析 html 内容)
- 显示html格式的输出 (可以进一步编写简单的 GUI 界面,参考内置动作`特殊符号大全`)
- 复制到剪贴板
- 发送到活动窗口(可实现发送常用短语之类的功能)
- 发送到系统通知
- 在终端中显示
### 3.运行代码
- 内置了一个简单的脚本编辑器,可以快速运行代码
- 支持匹配脚本文件
- 会自动记录上次运行的代码
![UaNvPx.png](https://s1.ax1x.com/2020/07/14/UaNvPx.png)
## 安装方法
@ -212,4 +143,4 @@
## 关键字
`快捷命令` `QuickCommand`
`快捷命令` `QuickCommand` `运行代码` `RunCode`

153
src/CHANGELOG.md Normal file
View File

@ -0,0 +1,153 @@
## v2.0.0
本次带来了 海量更新
### 语言环境
- `模拟动作`模式改名为`quickcommand`
- 在 vm2 内运行,与插件环境隔离
- 无需本机预装环境,支持使用 nodejs/electron/utools 的 api
- 支持通过列表、多输入框、多按钮、文本框等多种形式获得用户的输入
- 现在和其他脚本一样可以针对输出进行不同处理或显示
- 封包了一些实用功能
- 现在添加按键通过监听按键进行添加,不再需要手动添加
- 添加更多的预设动作
- 重写延时函数,解决 utools 隐藏后延时不准的问题(其实是 electron 的问题)
- 新增支持运行`C# ``C`脚本,以及 windows 下可以通过 wsl 运行`shell`脚本
- 新增支持填写脚本参数,可以运行带参数的脚本
- 环境选择`custom`可以自定义解释器的路径、参数、脚本后缀以及输出解码的方式
![UfrpY4.png](https://s1.ax1x.com/2020/07/20/UfrpY4.png)
### 界面改善
- 命令的输出实时动态显示,无需等到命令执行结束,插件高度根据输出内容自适应,带子输入框的情况下,输出自动滚动
- 输出的文本或 html 结果可以按 ctrl+f 进行搜索
- 适配暗黑模式UI改版
### 功能增强
- 内置`文本处理``find GUI``执行 shell 命令`等多个实用快捷命令,均使用新版本新增功能实现
- 支持平台选项,可以设置命令使用的平台
- 支持给命令添加标签,进行分类
- 支持文件匹配,新增相应特殊变量
![UfrkOx.png](https://s1.ax1x.com/2020/07/20/UfrkOx.png)
### 分享命令
- 支持将命令导出到剪贴板,以及通过剪贴板导入命令
- 新增分享中心,可以快速分享和下载命令
![UfDkdS.png](https://s1.ax1x.com/2020/07/20/UfDkdS.png)
### 用户体验
- 可以在新建命令的界面直接运行当前代码进行测试
- 新增两个文档,分别为插件的`帮助说明``quickcommand 文档`
- `{{pwd}} `获取失败时返回桌面路径
- 删除命令时会再次确认
### 编辑器
- 支持 js、py 代码格式化
- 新增cmd、applescript 代码高亮(原先用的 shell 的)
- 支持代码提示和特殊变量提示,其中 cmd 和 shell 支持提示和补全当前环境变量下的命令js 和 py 支持智能提示,其他语言支持关键字提示
- 支持 vscode 快捷键
- 新增一个 feature脚本编辑器可以在选中脚本文件后快速进行编辑和运行测试
![UfsGvR.png](https://s1.ax1x.com/2020/07/20/UfsGvR.png)
## v1.6.1
- 现在执行快捷命令时会现将uTools的高度设置为0如果有输出再展开
- 模拟动作模式增加支持`require`
- 匹配主窗口输入模式下,会对输入的格式做简单校验
## v1.6.0
- 修复php乱码
- 现在可以自定义输出的编码方式,脚本里选择`custom`
- 模拟操作模式的`+延时`合并到`+动作中`
## v1.5.9
- 修复不能导入命令的bug
- 由于uTools 1.0.0版本匹配窗口时无法再使用正则,所以选择匹配窗口模式时,在填写进程时需填写进程全名,多个进程逗号隔开
- 忽略输出模式调整回自动隐藏窗口
- 更新示例命令库
## v1.5.8
- 适配新版本
## v1.5.7
- 添加`模拟操作`的功能,在`类型`下拉框内选取
- 该模式提供了模拟按键、打开文件、打开网站、定位文件、执行命令等实用功能
- 结合模拟按键和窗口匹配,可以实现针对不同的软件模拟不同的操作
- 该模式适用于没有编程基础的用户,只需要通过下拉框选取想要的功能,就可以快速编写一个简单的命令
- 该模式同样适用于本机没有任何语言环境的或环境变量失效的用户不需要安装nodejs即可执行js代码
- 虽然没有提供`特殊变量`的下拉框,但实际是支持的
- 脚本报错时提供跳转至临时脚本目录的选项
- 添加一个`下载命令`的按钮,可以跳转到[样例命令库]( https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections ),如果你不知道怎么去编写一个目录,可以尝试下载导入进行参考
- 貌似修复了执行完命令后再次呼出uTools会短暂显示命令关键词的bug该bug可能是由先隐藏uTools再退出插件所引起
![JU0UAS.png](https://s1.ax1x.com/2020/04/22/JU0UAS.png)
## v1.5.1
- 修复macOS下新增命令界面排版错误的问题
- 修复macOS下使用shell脚本且发送输出结果到活动窗口时结果不正确的问题
## v1.5.0
- 注意本次更新对多处代码进行了重写,如果原有命令在上一版运行正常,在这一版出现了一些问题,请重新编辑该命令,修改命令的模式。如原有命令中使用了{{input}}变量的,关键字会变成[object object],请重新编辑该命令,将命令调整为`主输入框正则匹配`,如果原有命令中使用了{{pwd}}等变量的,请重新编辑该命令,将命令调整为`通过uTools呼出前的窗口匹配`
- 原先命令自定了图标的,如果图标显示异常,重新选择设置一次图标即可
![JU08Xt.png](https://s1.ax1x.com/2020/04/22/JU08Xt.png)
### 功能更新
- 新增`通过uTools呼出前的窗口匹配`的模式,现在可以快速编写一个应用到当前活动窗口的脚本
- 现在可以分别通过`关键字`,`主输入框正则匹配`,`活动窗口匹配`三种方式来调用自定义的脚本
- 新增一个特殊变量`当前窗口信息`,输出`json`格式的窗口相关信息,将原先的特殊变量`用户名`改为`本机唯一ID`方便针对不同电脑编写脚本两个变量均通过官方API获取
- 弃用原先模拟按键的方式获取资源管理器路径、选中文件、浏览器地址均借助官方API
- 新增`发送系统通知`的输出模式 By [imxiny](https://github.com/imxiny)
- 新增`在终端显示`的输出模式, 用以解决脚本需要显示动态输出的问题, 如 curl 命令 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/3)
- 上传一些命令至仓库的`CommandCollections`文件夹用以作为编写命令的样例同时大家可以提交PR丰富这个命令库 [CommandCollections](https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections)
### BUG 修复
- 修复 php 无法输入 <? 问题修复MacOS环境变量问题修复脚本不能带参数问题 By [dofy](https://github.com/dofy)
- 修复中文乱码问题
- 修复当使用子输入框时,会多次触发脚本的问题 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/5)
- 修复当使用多行批处理脚本时,执行会报错的问题,该问题源于之前插件保存的批处理脚本的换行符是`LF`, windows 无法识别 [issue](https://yuanliao.info/d/424/70)
### 用户体验
- 获取选中文本,以及输出方式为发送到活动窗口时不再覆盖用户剪贴板
### 催更
- 之前了解到官方将出自动化插件,所以也有较长时间没有更新,在此以更催更
## v1.1.0
- 新增支持获取子输入框变量,感谢@ghostbody
- 支持自定义解释器的路径
## v1.0.0
- 上架 uTools 商店,去掉插件自带更新
- 精简了插件大小
- 可以自定义语言
## v0.0.2
- 修复uTools更新后进入插件空白的BUG
- 添加Linux支持
- 修复导入BUG
- 修复说明为空时无法启用命令的BUG
- 添加全部导出和全部删除的功能

View File

@ -1,175 +1,137 @@
# 快捷命令 V1.6.1
# 快捷命令 V2.0.0
## 简介
快速执行自定义的命令、脚本或模拟按键
- 自定义在 uTools 中快速执行的命令或脚本
### 更新
- 内置了执行 shell 命令、文本处理、文本替换、网址二维码等实用命令
#### v1.6.1
- 支持在插件内下载别人分享的命令
- 现在执行快捷命令时会现将uTools的高度设置为0如果有输出再展开
- 模拟动作模式增加支持`require` 😈😈
- 匹配主窗口输入模式下,会对输入的格式做简单校验
#### v1.6.0
- 修复php乱码
- 现在可以自定义输出的编码方式,脚本里选择`custom`
- 模拟操作模式的`+延时`合并到`+动作中`
#### v1.5.9
- 修复不能导入命令的bug
- 由于uTools 1.0.0版本匹配窗口时无法再使用正则,所以选择匹配窗口模式时,在填写进程时需填写进程全名,多个进程逗号隔开
- 忽略输出模式调整回自动隐藏窗口
- 更新示例命令库
#### v1.5.8
- 适配新版本
#### v1.5.7
- 添加`模拟操作`的功能,在`类型`下拉框内选取
- 该模式提供了模拟按键、打开文件、打开网站、定位文件、执行命令等实用功能
- 结合模拟按键和窗口匹配,可以实现针对不同的软件模拟不同的操作
- 该模式适用于没有编程基础的用户,只需要通过下拉框选取想要的功能,就可以快速编写一个简单的命令
- 该模式同样适用于本机没有任何语言环境的或环境变量失效的用户不需要安装nodejs即可执行js代码
- 虽然没有提供`特殊变量`的下拉框,但实际是支持的
- 脚本报错时提供跳转至临时脚本目录的选项
- 添加一个`下载命令`的按钮,可以跳转到[样例命令库]( https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections ),如果你不知道怎么去编写一个目录,可以尝试下载导入进行参考
- 貌似修复了执行完命令后再次呼出uTools会短暂显示命令关键词的bug该bug可能是由先隐藏uTools再退出插件所引起
![JU0UAS.png](https://s1.ax1x.com/2020/04/22/JU0UAS.png)
#### v1.5.1
- 修复macOS下新增命令界面排版错误的问题
- 修复macOS下使用shell脚本且发送输出结果到活动窗口时结果不正确的问题
#### v1.5.0
- 注意本次更新对多处代码进行了重写,如果原有命令在上一版运行正常,在这一版出现了一些问题,请重新编辑该命令,修改命令的模式。如原有命令中使用了{{input}}变量的,关键字会变成[object object],请重新编辑该命令,将命令调整为`主输入框正则匹配`,如果原有命令中使用了{{pwd}}等变量的,请重新编辑该命令,将命令调整为`通过uTools呼出前的窗口匹配`
- 原先命令自定了图标的,如果图标显示异常,重新选择设置一次图标即可
![JU08Xt.png](https://s1.ax1x.com/2020/04/22/JU08Xt.png)
##### 功能更新
- 新增`通过uTools呼出前的窗口匹配`的模式,现在可以快速编写一个应用到当前活动窗口的脚本
- 现在可以分别通过`关键字`,`主输入框正则匹配`,`活动窗口匹配`三种方式来调用自定义的脚本
- 新增一个特殊变量`当前窗口信息`,输出`json`格式的窗口相关信息,将原先的特殊变量`用户名`改为`本机唯一ID`方便针对不同电脑编写脚本两个变量均通过官方API获取
- 弃用原先模拟按键的方式获取资源管理器路径、选中文件、浏览器地址均借助官方API
- 新增`发送系统通知`的输出模式 By [imxiny](https://github.com/imxiny)
- 新增`在终端显示`的输出模式, 用以解决脚本需要显示动态输出的问题, 如 curl 命令 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/3)
- 上传一些命令至仓库的`CommandCollections`文件夹用以作为编写命令的样例同时大家可以提交PR丰富这个命令库 [CommandCollections](https://github.com/fofolee/uTools-QuickerCommand/tree/master/CommandCollections)
##### BUG 修复
- 修复 php 无法输入 <? 问题修复MacOS环境变量问题修复脚本不能带参数问题 By [dofy](https://github.com/dofy)
- 修复中文乱码问题
- 修复当使用子输入框时,会多次触发脚本的问题 [issue](https://github.com/fofolee/uTools-QuickerCommand/issues/5)
- 修复当使用多行批处理脚本时,执行会报错的问题,该问题源于之前插件保存的批处理脚本的换行符是`LF`, windows 无法识别 [issue](https://yuanliao.info/d/424/70)
##### 用户体验
- 获取选中文本,以及输出方式为发送到活动窗口时不再覆盖用户剪贴板
##### 催更
- 之前了解到官方将出自动化插件,所以也有较长时间没有更新,在此以更催更
#### v1.1.0
- 新增支持获取子输入框变量,感谢@ghostbody
- 支持自定义解释器的路径
#### v1.0.0
- 上架 uTools 商店,去掉插件自带更新
- 精简了插件大小
- 可以自定义语言
#### v0.0.2
- 修复uTools更新后进入插件空白的BUG
- 添加Linux支持
- 修复导入BUG
- 修复说明为空时无法启用命令的BUG
- 添加全部导出和全部删除的功能
- 简单的代码编辑及运行功能
## 功能
#### 快速启动
### 1.内置命令
可以配置一些常用的命令,比如`回收站` `查看网络连接`之类
当前内置的命令有:`Windows Terminal 中打开``执行 shell 命令``文本处理``文本替换``vscode代码片段生成器``通过 find 查找文件``网址二维码`
![UTOOLS1556854200416.png](https://i.loli.net/2019/05/03/5ccbb5bb2c7d5.png)
![UaJD8U.png](https://i.imgur.com/SI21vCg.png)
![UTOOLS1556779310377.png](https://i.loli.net/2019/05/02/5cca91329a525.png)
![UJ3RyV.gif](https://s1.ax1x.com/2020/07/13/UJ3RyV.gif)
![UTOOLS1556779348048.png](https://i.loli.net/2019/05/02/5cca9155a2244.png)
### 2.导入、导出、分享命令
![UTOOLS1556779660316.png](https://i.loli.net/2019/05/02/5cca928f51905.png)
- 支持通过文件导入导出命令
- 支持通过剪贴导入导出命令
- 支持一键分享命令
- 支持在线获取及导入别人分享的命令
配合`uTools`的全局功能快捷键,可以达到一键启动的功能
![UfBox1.png](https://i.imgur.com/pKKWqdT.png)
#### 常用脚本
![UfDkdS.png](https://s1.ax1x.com/2020/07/20/UfDkdS.png)
如果为了一个小功能,就去编写一个插件,成本太高,本插件可以利用本地的脚本环境快速实现一些小功能。比如`base64转图片`
### 3.自定义命令
![UTOOLS1556779835126.png](https://i.loli.net/2019/05/02/5cca933de1883.png)
#### 基础
目前可以添加以下类型的脚本,但要注意的是**本插件未封装任何运行环境,需要本机安装了环境才能执行相应的脚本**
- 常用动作 (通过点击`+动作`按钮进行添加)
- 打开文件/文件夹/软件 (实现在主输入框启动自定义的软件名称及路径
- 在文件管理器中定位文件
- 用默认浏览器打开网址(实现类似网页快开的功能)
- 用 ubrowser 打开网址
- 执行系统命令
- 将内容写入剪贴板
- 发送系统消息
- 弹窗显示消息
- 发送文本到活动窗口
- 转至指定插件(实现自定义插件关键字)
- 添加延时
- 模拟按键 (通过点击`+按键`按钮进行添加)
![UTOOLS1556779901749.png](https://i.loli.net/2019/05/02/5cca938100c91.png)
![UawViR.png](https://s1.ax1x.com/2020/07/14/UawViR.png)
同时,本插件可以作为一个便捷的脚本仓库,因为所有的脚本都是多设备自动同步的,无须另外存储在硬盘中
#### 进阶
#### 输出处理
##### 匹配
如果脚本有输出,则可以对输出内容做如下处理
决定通过何种方式进入插件,不同的匹配模式也会影响插值变量的使用
- 忽略输出
- 显示纯文本输出 (不解析 html 内容)
- 显示html格式的输出 (可以进一步编写简单的 GUI 界面)
- 复制到剪贴板
- 发送到活动窗口(可以实现类似代码片段、常用短语之类的功能)
- 发送到系统通知
- 在终端中显示
- 关键字
- 在主输入框输入对应关键字进入插件,最通用的一种模式,关键字可以设置多个
- 正则/划词
- 正则匹配主输入框文本或唤出语音面板时选中的文本,可以获取输入框文本或选中文本作为变量
- 窗口/进程
- 匹配呼出 uTools 前或唤出语音面板时的活动窗口,可以获取窗口的信息或文件夹路径作为变量
- 复制/选中文件
- 匹配拖入主输入框的文件或唤出语音面板时选中的文件,可以获取复制及选中的文件信息作为变量
#### 插值变量
![UY3i7D.png](https://s1.ax1x.com/2020/07/13/UY3i7D.png)
如果你仔细看了上面例子中的脚本,一定会发现很多脚本里都有`{{}}`格式的变量
##### 环境
- quickcommand
- 可以快速执行打开网址、软件、文件夹、模拟按键等高频动作的命令
- 可使用nodejs、electron、uTools、quickcommand 的 api 来编写具有 UI 交互的脚本,详情查看插件内的文档
- python、cmd、shell 、php 等环境
- 本机装了相应环境即可执行相应的脚本
- 可以通过插值变量增强脚本的功能
- 支持 10+ 语言
- 可以通过 custom 手动设置解释器路径、参数、脚本后缀及编码方式
![UawKsO.png](https://s1.ax1x.com/2020/07/14/UawKsO.png)
##### 插值变量
本插件内置了一些特殊的插值变量,可以获取一些特殊的值,能够加入到插件里的任意脚本中
全模式可用
- `{{isWin}}` 是否是window系统
- `{{isWin}}` 是否Window系统 返回1或0
- `{{LocalId}}`本机唯一ID
- `{{BrowserUrl}}` 浏览器的当前链接
- `{{ClipText}}` 获取剪贴板的文本
- `{{SelectText}}` 获取选中的文本
- `{{subinput}}`获取子输入框的文本
- `{{SelectText}}` 获取选中的文本 (已弃用)
- `{{subinput}}`获取子输入框的文本,具有此变量时会在进入插件时自动启动子输入框
窗口模式可用
匹配**窗口/进程**时可用
- `{{pwd}}` 资源管理器或访达的当前目录
- `{{SelectFile}}` 获取选中的文件
- `{{WindowInfo}}`当前窗口信息
- `{{SelectFile}}` 文件管理器选中的文件,不支持 Linux
- `{{WindowInfo}}`当前窗口信息,返回 JSON 格式字符串
- 可以使用类似 `{{WindowInfo.id}}`的格式来直接读取相应的值
正则匹配模式可用
匹配**正则/划词**时可用
- `{{input}} ` 获取uTools主输入框的文本
- `{{input}} ` 获取主输入框的文本
插值使用示例
匹配**复制/选中文件**时可用
![tfoJsJ.png](https://s1.ax1x.com/2020/06/08/tfoJsJ.png)
- `{{MatchedFiles}}` 匹配的文件,返回 JSON 格式字符串
- 可以使用类似`{{MatchedFiles[0].path}}`的格式来直接读取相应的值
![tfoNZR.png](https://s1.ax1x.com/2020/06/08/tfoNZR.png)
##### 输出
如果脚本有输出,则可以对输出内容做如下处理
- 隐藏并忽略输出
- 显示纯文本输出 (不解析 html 内容)
- 显示html格式的输出 (可以进一步编写简单的 GUI 界面,参考内置动作`特殊符号大全`)
- 复制到剪贴板
- 发送到活动窗口(可实现发送常用短语之类的功能)
- 发送到系统通知
- 在终端中显示
### 3.运行代码
- 内置了一个简单的脚本编辑器,可以快速运行代码
- 支持匹配脚本文件
- 会自动记录上次运行的代码
![UaNvPx.png](https://s1.ax1x.com/2020/07/14/UaNvPx.png)
## 安装方法
@ -181,4 +143,4 @@
## 关键字
`快捷命令` `QuickCommand`
`快捷命令` `QuickCommand` `运行代码` `RunCode`

File diff suppressed because one or more lines are too long

View File

@ -6,9 +6,9 @@
#### 常用动作
通过点击`+动作`按钮进行添加
通过点击`+动作`<sup></sup>按钮进行添加
- 打开文件/文件夹/软件 (实现在主输入框启动自定义的软件名称及路径
- 打开文件/文件夹/软件<sup></sup> (实现在主输入框启动自定义的软件名称及路径
- 在文件管理器中定位文件
- 用默认浏览器打开网址(实现类似网页快开的功能)
- 用 ubrowser 打开网址
@ -20,11 +20,11 @@
- 转至指定插件(实现自定义插件关键字)
- 添加延时
![](https://i.imgur.com/dnPOyqW.png)
#### 模拟按键
通过点击`+按键`按钮进行添加
通过点击`+按键`<sup></sup>按钮进行添加
![](https://i.imgur.com/SozshQL.png)
## 进阶
@ -116,18 +116,18 @@
#### 导出命令
点击命令旁的蓝色小箭头即可导出命令,支持
点击命令旁的蓝色小箭头<sup></sup>即可导出命令,支持
- 导出到剪贴板
- 导出到文件
- 导出到剪贴板<sup></sup>
- 导出到文件<sup></sup>
![](https://i.imgur.com/mnVGx8J.png)
![](https://i.imgur.com/NoM6y5n.png)
#### 分享命令
点击分享命令即可一键分享当前的命令,初次分享命令,需要按照以下步骤设置 token
1.通过 [https://www.yuque.com/g/fofolee/em2rng/collaborator/join?token=6LZn2vc34dqfIQdC](https://www.yuque.com/g/fofolee/em2rng/collaborator/join?token=6LZn2vc34dqfIQdC) 成为知识库成员,如果没有语雀账号,需要先注册一个
1.通过 [https://www.yuque.com/g/fofolee/qcshares/collaborator/join?token=6LZn2vc34dqfIQdC]( https://www.yuque.com/g/fofolee/qcshares/collaborator/join?token=6LZn2vc34dqfIQdC ) 成为知识库成员,如果没有语雀账号,需要先注册一个
![](https://i.imgur.com/H4Hh781.png)
@ -135,9 +135,17 @@
![U2Rw0P.png](https://s1.ax1x.com/2020/07/19/U2Rw0P.png)
3.在插件内填入生成的 token,之后就可以尽情地分享命令啦
3.点击命令旁的蓝色小箭头<sup></sup>,填入生成的 token <sup></sup> ,之后就可以尽情地分享命令啦
![](https://i.imgur.com/tAXTSi9.png)
![](https://i.imgur.com/pQbFcvs.png)
**注意:**
1. 为了保证命令的安全和质量,分享后的命令必须经过快捷命令插件作者本人`发布`后才能出现在`分享中心`当中。所有分享而暂未发布的命令在[ https://www.yuque.com/g/fofolee/qcshares/docs ]( https://www.yuque.com/g/fofolee/qcshares/docs )可以查看到(仅知识库成员访问),所有已发布的命令在[ https://www.yuque.com/fofolee/qcreleases ]( https://www.yuque.com/fofolee/qcreleases )可以查看到(所有人均可访问)。
![](https://i.imgur.com/mn1qeTT.png)
2. 请自觉规范自己的行为,所有操作均有日志,所有未发布的命令均视为不安全的命令
#### 导入命令
@ -148,11 +156,15 @@
#### 获取分享
点击设置界面底部的`获取分享`即可获取并导入在线分享的命令啦
可以通过以下两种方式来获取分享:
![](https://i.imgur.com/rWqQogD.png)
1. 点击设置界面底部的`分享中心`<sup></sup>即可获取并导入在线分享的命令
![](https://i.imgur.com/r3vJWKv.png)
![UfBox1.png](https://i.imgur.com/pKKWqdT.png)
![UfDkdS.png](https://s1.ax1x.com/2020/07/20/UfDkdS.png)
2. 访问[ https://www.yuque.com/fofolee/qcreleases ]( https://www.yuque.com/fofolee/qcreleases )即可查看发布的命令
# 三、关于

File diff suppressed because one or more lines are too long

View File

@ -240,6 +240,19 @@ quickcommand.showMessageBox("这是一段3s后自动消失的成功提示")
quickcommand.showMessageBox("这是一段3s后自动消失的失败提示", "error")
```
#### `showConfirmBox(title)`
- title: String | undefined 提示的标题
- 返回: Promise
显示一个确认框
```js
quickcommand.showConfirmBox().then(() => {
console.log('点击了确定')
})
```
####`sleep(ms)`
- ms: Integer 等待的毫秒
@ -342,42 +355,54 @@ quickcommand.kill(16084)
## 上下文一览
- nodejs [文档]( http://nodejs.cn/api/ )
- require
- os
- fs
- path
- child_process
- util
- axios [文档]( https://www.kancloud.cn/yunye/axios/234845)
- electron [文档]( http://www.electronjs.org/docs )
- clipboard
- contextBridge
- crashReporter
- desktopCapturer
- ipcRenderer
- nativeImage
- shell
- webFrame
- utools [文档]( https://u.tools/docs/developer/api.html )
#### nodejs
- [文档]( http://nodejs.cn/api/ )
- **require**
- **os**: {arch: *ƒ*, cpus: *ƒ*, endianness: *ƒ*, freemem: *ƒ*, getPriority: *ƒ*, …}
- **fs**: {appendFile: *ƒ*, appendFileSync: *ƒ*, access: *ƒ*, accessSync: *ƒ*, chown: *ƒ*, …}
- **path**: {resolve: *ƒ*, normalize: *ƒ*, isAbsolute: *ƒ*, join: *ƒ*, relative: *ƒ*, …}
- **child_process**: {_forkChild: *ƒ*, ChildProcess: *ƒ*, exec: *ƒ*, execFile: *ƒ*, execFileSync: *ƒ*, …}
- **util**: {_errnoException: *ƒ*, _exceptionWithHostPort: *ƒ*, _extend: *ƒ*, callbackify: *ƒ*, debuglog: *ƒ*, …}
- **axios** [文档]( https://www.kancloud.cn/yunye/axios/234845)
#### electron
- [文档]( http://www.electronjs.org/docs )
- **clipboard**: Object
- **contextBridge**: Object
- **crashReporter**: Object
- **desktopCapturer**: Object
- **ipcRenderer**: EventEmitter
- **nativeImage**: Object
- **shell**: Object
- **webFrame**: WebFrame
#### utools
- [文档]( https://u.tools/docs/developer/api.html )
- all except below
- ~~db~~
- ~~removeFeature~~
- ~~setFeature~~
- quickcommand
- downloadFile: *ƒ (url, defaultPath = '', showDialog = false)*
- htmlParse: *ƒ (html)*
- kill: *ƒ (pid, signal = 'SIGTERM')*
- payload: ""
- setTimeout: *ƒ (callback, ms)*
- showButtonBox: *ƒ (buttons)*
- showInputBox: *ƒ (placeHolders)*
- showMessageBox: *ƒ (title, icon = "success", time = 3000)*
- showSelectList: *ƒ (selects, opt = {})*
- showTextAera: *ƒ (placeholder = "")*
- simulateCopy: *ƒ ()*
- simulatePaste: *ƒ ()*
- sleep: *ƒ (ms)*
- updateSelectList: *ƒ (opt, id)*
#### quickcommand
- **downloadFile**: *ƒ (url, defaultPath = '', showDialog = false)*
- **htmlParse**: *ƒ (html)*
- **kill**: *ƒ (pid, signal = 'SIGTERM')*
- **payload**: ""
- **setTimeout**: *ƒ (callback, ms)*
- **showButtonBox**: *ƒ (buttons)*
- **showConfirmBox**: *ƒ (title)*
- **showInputBox**: *ƒ (placeHolders)*
- **showMessageBox**: *ƒ (title, icon = "success", time = 3000)*
- **showSelectList**: *ƒ (selects, opt = {})*
- **showTextAera**: *ƒ (placeholder = "")*
- **simulateCopy**: *ƒ ()*
- **simulatePaste**: *ƒ ()*
- **sleep**: *ƒ (ms)*
- **updateSelectList**: *ƒ (opt, id)*