Giter Club home page Giter Club logo

cyga's Introduction

Cyga 2.5

一个模块化、轻量的Batch 控制台环境,致敬 Gardens OS 的最后一作(真的是最后一作)。完美整合了 Garlib 的面向对象设计**。当前版本概念已经成型,实现了基本构想。

比一代强在哪里?

Cyga2.0 相比 Cyga 一代来说,完全使用了原生CMD实现,具有一定的实用性。一些群友的评价:当Cyga2.0启用了Garlib2.0之后,会使得CMD具有一定的迷惑性,类似于REPL(Read-Eval-Print Loop),CMD表现的更像一个编程语言

由于 Cyga2.0 带来的架构更新,带来了无与伦比的兼容性和横向扩展性,但是它依旧只是个CMD。


如何使用

Cyga 并没有非常多的命令,但你可以通过一些操作来满足你的需求。

在以下教程中,我们将着重讲解如何定制你的 Cyga 体验以及 Garlib 的基本使用方法。

CygaBox

Cyga从2.5版本起提供了一系列便于命令行使用的快捷批处理,使用 h 指令获得帮助。

启用一个模块

我们开发了一个简陋的模块系统,使得 Cyga 的环境具有一定的定制能力,你可以通过使用不同的模块来获得不同的CMD体验,当然你也可以打开这些模块文件夹,并仿照它们编写自定义模块。

你可以使用以下指令来启用一个模块:

enable [moduleName]

如果不指定 moduleName ,那么 enable 将会展示 ./arch 目录下所有的文件夹,这些文件夹的每个在一般情况下代表着一个模块。

当成功指定一个存在的 moduleName,那么 enable 将会调用 ./arch/<moduleName>/<moduleName>.init.cmd ,如何编写 init 文件可以参考./arch/garlib/garlib.init.cmd 传送门

自定义工具

Cyga 存在一个目录 ./bin ,你可以将你常用但不想放在原版CMD的PATH里的工具放在这里,在启动 Cyga 之后,这些工具将会自动导入环境。

你可以在安全模式打开 Cyga ,这会使得你无法使用System32下的所有工具,但是在排查一些问题的时候安全模式会很有用。

./lib 是存放 Cyga 内部脚本的地方,这里一般不推荐乱动。

Garlib 面向对象的CMD

Garlib 为CMD提供了一个虚假的类型系统,使得CMD的一些行为变得反直觉,但是它的存在是喜人的,就像不知道做什么的时候突然发现了有意思的事情一样。

详细教程见garlib.md

脚本支持

如果你要在 Cyga 的环境下运行脚本,你需要知道以下几点:

  1. 所有 CygaGarlib 的方法需要在前面加 call 指令,比如说:
::cyga-script.bat
@echo off
call enable garlib
call String s = "Hello, World!"
call print s
...

当然如果有什么不依靠call还能正常执行的方法也请提给我。

  1. 后面几点想到再说。

用户启动脚本

当你在 Cyga 根目录创建名为 uservars.bat 的文件后,这个文件将会成为用户启动脚本,该脚本的编写遵循脚本支持中的部分,用户启动脚本会在 cygavars.bat 完成侧载后、更改目录前执行。

在这个脚本内你可以执行一些个性化的设置,比如修改CMD的窗口大小和样式、通过 call enable 来启用某些功能甚至修改 Cyga 的运行路径,以下举了个常用的例子:

::uservars.bat
call enable bcn
color 0f
mode con: cols=110 lines=35

关于可能的未来

Garlib 的类型系统仍然是不完善的,在后期我们可能会考虑使用以下存储库的内容来改善它:

https://github.com/npocmaka/batch.scripts

https://github.com/ritchielawrence/batchfunctionlibrary


版本变化

Revision Date Changes
1.0.1002 2021-01-02 Bug Fix
2.0b 2023-01-18 Total Upgrade
2.1b 2023-01-24 Add user config
2.2a 2023-02-16 Add bcn support ...
2.3b 2023-02-19 Add decmd support ...
2.4 2023-06-27 Add default cmd agent ...
2.5 2023-08-30 Add CygaBox ...

版权和许可证

Code and documentation copyright 2016-2023 TePuint Club. Code released under MIT License

cyga's People

Contributors

ayalakaguya avatar

Stargazers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.