今天要推荐一个爱不释手的好东西–Bito;
从事相关工作的人大概率在自己的代码编辑器中已经用上了Bito
的插件版本,所以这里主要介绍的是一个适合与所有人且方便快捷的Bito CLI
,也就是Bito
的命令行版本。
BitoCLI
从官方介绍来看,这是一款为 Bito AI 聊天功能提供命令行界面。CLI
一个明显的好处就是安装方便,不需要额外打开其他程序,直接嵌入命令行,使用简单的指令即可触发。
安装
由于自己是Windows
系统,这里主要介绍该系统的安装方式,其他系统的安装方法也很简单,文末会附上开源地址,官方的安装说明一看就会系列。
如果你也是Windows
,可以通过 MSI
安装 Bito CLI
。下载地址:https://github.com/gitbito/CLI/blob/main/version-3.5/Bito%20CLI.exe
如果链接打开缓慢也没关系,等下都会将需要的文件直接打包放公众号,回复Bito
即可获取,一步到位。
拿到安装文件之后,双击打开,可如果你的电脑运行了自带的安全软件可能会出现下面的提示:
允许运行之后就和平时安装软件一样等待他自己安装完成即可。
在执行下一步操作之前,需要去到Bito官方网站注册一个账号并创建一个工作空间,链接如下:https://bito.ai/
点击登录之后,大致页面如下,接下来按照提示一步步使用邮箱注册好自己的账户即可,属于有手就行系列。
完事之后打开电脑上的黑窗口(打开的方式有很多,下面是其中一种)通过Windows自带的搜索功能直接打开。
窗口打开之后输入:bito
即可开始运行bito
命令行。下面是我打开之后的截图:
如果你是第一次使用,那么界面必然和我的有差别,第一次使用会要求你输入之前注册好的邮箱地址完成一个登录校验的工作,步骤也不繁琐,会有提示引导,下面附上官方的一个录屏参考。
基本用法
等待状态下,直接输入你需要提问的内容,输入结束之后按下:Ctrl+D
等待响应即可。
下面是几个简单例子
高级用法
高级,指的是可以通过它来完成一些自动化的操作。
1.读取代码文件并作出解释:
bito –p 操作需求.txt -f code.js // 读取并按照操作需求对指定代码文件进行自动化操作
命令中的xxx.txt
是一个普通的文本文档,里面包含你需要Bito
对后面的code.js
代码文件进行的操作提示,或者说是要求;
而这里的code.js
也只是一个示例,实际上它可以是任意的编程语言文档,看你咯;
我们下面创建一个提示文档以及使用cpp
写一道算法题,甩给Bito
,看它作何解释。
Tips.txt
如何理解下面的代码?
LinkList.cpp
#include <stdio.h>
#include <stdlib.h>typedef struct Node {int data;struct Node* next;
} Node, *LinkList;LinkList createList() {LinkList head = (LinkList)malloc(sizeof(Node)); // 创建头节点head->next = NULL; // 头节点的指针域初始化为NULLreturn head;
}int getLength(LinkList head) {int count = 0; // 计数器初始化为0Node* p = head->next; // 从链表的第一个节点开始遍历while (p != NULL) {count++; // 计数器加1p = p->next; // 指针指向下一个节点}return count; // 返回计数器的值
}int getElement(LinkList head, int index) {int count = 0; // 计数器初始化为0Node* p = head->next; // 从链表的第一个节点开始遍历while (p != NULL) {if (count == index) {return p->data; // 当计数器等于给定索引时,返回当前节点的数据}count++; // 计数器加1p = p->next; // 指针指向下一个节点}return -1; // 如果链表长度不足,返回-1表示查找失败
}int getIndex(LinkList head, int value) {int count = 0; // 计数器初始化为0Node* p = head->next; // 从链表的第一个节点开始遍历while (p != NULL) {if (p->data == value) {return count; // 当前节点的数据等于给定元素时,返回当前节点的位置}count++; // 计数器加1p = p->next; // 指针指向下一个节点}return -1; // 如果链表中没有给定元素,返回-1表示查找失败
}int main() {LinkList head = createList(); // 创建链表Node* p = head; // 定义指针p指向头节点int data[] = {1, 2, 3, 4, 5}; // 测试数据int len = sizeof(data) / sizeof(data[0]); // 计算测试数据的长度for (int i = 0; i < len; i++) {Node* newNode = (Node*)malloc(sizeof(Node)); // 创建新节点newNode->data = data[i]; // 设置新节点的数据newNode->next = NULL; // 新节点的指针域初始化为NULLp->next = newNode; // 将新节点插入链表p = p->next; // p指向新节点}printf("链表的长度为:%d\n", getLength(head)); // 输出链表的长度printf("索引为2的元素为:%d\n", getElement(head, 2)); // 输出索引为2的元素printf("元素3所在的索引为:%d\n", getIndex(head, 3)); // 输出元素3所在的索引return 0;
}
执行之后的结果如下:
可以看到,这个解释基本没什么问题,这只是一个简单的例子,实际上Bito能理解的难度还可以远大于示例。
注意,这段指令必须在非交互界面执行,也就是不需要先输入
Bito
打开交互模式就可以直接执行。
当然,还有一种方式,读取需求文件去理解命令行直接输入的代码内容:
上面这些只是一些基本的使用技巧,如果你熟悉并使用Linux
系统,那么搭配上这款BitoCLI
,将会直接起飞。
有一说一,命令这种东西其实和非窗口系统搭配会更如虎添翼些,本文没有涉及这方面的内容是因为,Windows
操作系统是目前大部分玩家的系统,所以这算是一篇 科普 类的文章。