QuickProject
预览
安装:
pip3 install Qpro [--upgrade]
如果你的Python版本低于3.6:
pip3 install Qpro==0.7.0
, 这是Qpro对低版本Python的最后支持。ZSH的Tab补全:将项目地址下的
complete/<your-language>/*
拷贝到你的$fpath
内,并在~/.zshrc
中最后一行加入:1
2
3autoload -Uz compinit
zstyle ':completion:*' menu select
compinit
命令行自动补全
- 如需激活基于
QuickProject.Commander
的命令行应用的qrun
Tab补全,需要配置表中的enable_complete
选项为True
,或运行Qpro enable-complete
激活。效果↓
Qpro提供基于Fig的自动补全,你需要将
complete/fig/*.ts
拷贝至~/.fig/user/autocomplete/src
目录下,并执行npm run copy-to-global
。效果↓其中,add_update写法:
1
2
3
4
5
6
7
8
9
10
11
def add_update(contents: str, score: int, names: str = pyperclip.paste()):
"""
添加加分项
:param contents: 加分理由
:param score: 整数分数
:param names: 以中文逗号分隔的姓名字符串,默认从粘贴板获取
:return:
"""
pass
使用:
Command | Result |
---|---|
Qpro init |
将当前文件夹初始化为Qpro项目 |
Qpro -h |
查看帮助 |
Qpro create project |
创建一个Qpro项目 |
Qpro update |
更新Qpro |
Qpro ssh |
进入服务器Qpro项目位置 |
Qpro scp path |
将项目内文件夹或文件上传到默认服务器 |
Qpro scp-init |
将整个项目上传到默认服务器 |
Qpro get path |
从服务器上拉取项目内文件 |
Qpro del path |
从Qpro项目中删除文件(夹) |
Qpro del-all |
删除整个项目 |
Qpro ls path |
查看远程映射上的文件 |
tmpm * |
调用模板脚本,刷新项目中的默认源文件 |
qrun * |
使用运行脚本运行你的项目,Windows(qrun ) |
detector [-[p/f][p/f]] |
运行对拍器(对拍器只能在Qpro -init 后的文件夹下运行) |
- 初始化后的项目,可以手动编辑配置表
project_configure.json
来调整配置。 - 支持
C/CPP
但不止于C/CPP
,理论上你可以使用Qpro运行任何语言项目。
配置表
请您务必了解配置表的含义,QuickProject几乎完全根据配置表工作
- 修改
project_configure.json
来调整脚本默认配置
键值 | 含义 |
---|---|
compile_tool |
编译指令 |
compile_filename |
待编译的文件(入口文件) |
executable_filename |
编译出的可执行文件路径或执行命令 |
input_file |
默认的输入文件 |
template_root |
模板库根目录 |
server_targets |
远程映射 |
[enable_complete] |
使qrun支持Commander 的 tab补全 |
样例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
"compile_tool": "编译指令",
"compile_filename": "入口文件",
"executable_filename": "执行指令",
"input_file": "输入文件",
"template_root": "模板目录",
"server_targets": [
{
"user": "用户名(可缺省)",
"host": "主机地址或.ssh/config中的HostName",
"port": "端口",
"path": "在远程主机的目录地址"
}
],
"enable_complete": true
}注意:旧版本的server_target 已变更为 server_targets,你可以通过formatOldJson来替换全部旧的project_configure.json。
运行脚本
编译或运行
参数 | 含义 |
---|---|
-b | 编译 |
-r | 运行 |
-br | 编译且运行 |
如果上述三个命令都不存在,则默认运行当前编译好的程序
参数 | 含义 |
---|---|
-f *.c / *.cpp |
设置目标源文件为*.c / *.cpp |
输入输出
- 可以编辑 默认的输入文件 来设置默认输入
- 运行
qrun [...] > output.txt
使程序输出到./output.txt
参数 | 效果 |
---|---|
-i | 使用默认的输入文件作为输入 |
-if *.* |
更改输入文件,__ignore__ 会被忽略 |
-if -paste | 使用粘贴板内容作为输入 |
查看帮助
qrun -h
: 可以查看使用帮助(Windows系统不支持颜色显示)
推荐的命令示例
命令 | 效果 |
---|---|
qrun -i |
使用默认输入文件并运行 |
qrun |
运行 |
qrun -br -i |
编译且使用输入文件运行 |
模板脚本
命令 | 效果 |
---|---|
tmpm -h |
查看帮助 |
tmpm -i 或tmpm |
将主文件初始化为template/main 中的内容 |
tmpm -r |
选择备份并恢复 |
tmpm -r backup |
恢复为template/backup |
tmpm -c backup |
创建或覆盖template/backup |
tmpm -c template algorithm |
拷贝指定位置 , 创建模板集并写入算法 |
tmpm -a template algorithm |
拷贝指定位置 , 向模板集追加算法 |
tmpm name |
在__TMPM__ 处插入name 模板集内的模板 |
- 关于
指定位置
:tmpm
将会把compile_filename
中处于__TMPM_START__
和__TMPM_END__
之间的内容识别, 并拷贝
对拍器
- 使用:
detector
来进行两个源程序运行结果的对拍,结果存储在当前目录下的./res.html
。
命令 | 效果 |
---|---|
detector [-pp] |
打开默认对拍器(文件1 与文件2 都是程序),-pp 参数可缺省 |
detector -pf |
运行文件1 程序并将结果与文件2 对比 |
detector -fp |
运行文件2 程序并将结果与文件1 对比 |
detector -ff |
对比文件1 与文件2 的内容(你可以在任何位置调用) |
- 如果脚本未能自动打开
./res.html
, 你可以用浏览器打开它。
命令装饰类
demo
1 | from QuickProject.Commander import Commander |
qrun --help
qrun x aaa bbb ccc
1
aaa bbb ccc
特殊说明:
Commander对bool类型的参数支持方式
当bool类型的参数为必填参数时
- 这些值将被判定为True:[True, ‘True’, ‘true’, ‘yes’, 1, ‘t’, ‘T’, ‘y’, ‘Y’]
- 这些值将被判定为False: [False, ‘False’, false, ‘n’, 0, ‘f’, ‘F’, ‘n’, ‘N’]
当bool类型的参数为可选参数时(假设参数名为
flag
)- 推荐(强制要求)flag默认设为False。
- 在调用时加入
--flag
标志时,Commander将把其解释为设置flag为True。
- Commander对list类型的参数支持方式
- list类型仅支持设置为必填参数,且在调用时必须在命令的末尾赋值。
- 现假设list的参数命名为
ops
,则赋值方式为:qrun <sub_cmd> [若干其他参数] -ops a b c d
,此样例命令中的a b c d
都将作为字符串传递给ops列表。
将Commander应用注册为全局命令
注意:
你需要创建一个“Qpro全局文件夹”,比如
~/.local/QuickProject/
,并将其作为QproGlobalDir
的环境变量。1
2
3
4
5mkdir ~/.local/QuickProject
# 打开你的 .*shrc 文件
vim .zshrc
# 填入如下内容
export QproGlobalDir="/path/to/.local/QuickProject"设置
$PATH
, 用于执行Qpro注册的全局命令。1
2
3
4# 打开你的 .*shrc 文件
vim .zshrc
# 填入如下内容
export PATH="$PATH:$QproGlobalDir/bin"
注册方式:
- 注册为全局命令:
Qpro register-global [--disable_global_command]
: 将当前项目注册为全局命令,开启--disable_global_command
选项后,Qpro不会生成全局命令,但你仍可以通过Qpro bin <app> *
来调用Commander APP。 - Fig自动补全脚本生成与应用:进入Fig的自定义脚本文件夹下,通常为
~/.fig/user/autocomplete
,执行Qpro gen-fig-script
。 - zsh Tab补全脚本生成: 进入你的
$fpath
下,通常为/usr/local/share/zsh/site-functions
,执行Qpro gen-zsh-comp
,重启终端即可。
效果
全局命令 | Qpro bin 调用 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 RhythmLian's Blog!
评论