# MacOS
前言
Zsh Codex 是一个革命性的 ZSH 插件,它将人工智能的力量引入了命令行界面。
这个插件能够让你在使用 MacOS 的原生终端时,通过 AI 驱动的代码补全功能,节省大量记忆命令的时间,提高编码效率。
github地址:
https://github.com/tom-doerr/zsh_codex
本文我们来讨论这个插件的安装、使用、报错解决、接入deepseek等问题。
安装
要在 MacOS 的原生终端中安装 Zsh Codex,请按照以下步骤操作:
1、安装 OpenAI 包:
pip3 install openai
2、 下载 ZSH 插件:
git clone https://github.com/tom-doerr/zsh_codex.git ~/.oh-my-zsh/custom/plugins/zsh_codex
3、在 .zshrc 文件中添加配置:
plugins=(zsh_codex)
bindkey '^X' create_completion
如果有多个插件,那么中间逗号隔开即可。
plugins=(git,zsh_codex)
bindkey '^X' create_completion
4、 创建 API 配置文件:
在 ~/.config 目录下创建一个名为 zsh_codex.ini
的文件,内容如下:
[service]
service = deepseek[deepseek]
api_type = openai
api_key = dummy_key
model = deepseek-chat
base_url = https://api.deepseek.com/beta[openai_service]
api_type = openai
api_key = [my_ollama]
api_type = openai
api_key = dummy_key
model = llama3.1
base_url = http://localhost:11434/v1
以上的示例中有deepseek、OpenAI、ollama三种服务,我比较常用的就是这三个。
5、设置要使用的 AI 模型:
编辑 ~/.oh-my-zsh/custom/plugins/zsh_codex/zsh_codex.plugin.zsh 文件。
将 api 变量设置为 openai 。
6、 运行 zsh,开始使用!
解决不支持 match
由于我本地的Python版本是3.9.10,而 match 是在 Python 3.10 引入的特性。
因此运行时会报错:不支持match。
但是我又不想直接升级Python,所以只能通过修改代码的方式解决。
修改文件 /Users/mac/.oh-my-zsh/custom/plugins/zsh_codex/services/services.py,255行之后全部替换
if api_type == OpenAIClient.api_type:return OpenAIClient(config)
elif api_type == GoogleGenAIClient.api_type:return GoogleGenAIClient(config)
elif api_type == GroqClient.api_type:return GroqClient(config)
elif api_type == MistralClient.api_type:return MistralClient(config)
elif api_type == AmazonBedrock.api_type:return AmazonBedrock(config)
else:raise KeyError(f"Specified API type {api_type} is not one of the supported services {cls.api_types}")
即可。
使用
使用 Zsh Codex 非常简单:
- 在命令行中输入注释或变量名。
- 按下 ^X(Ctrl+X)。
- AI 会自动生成相应的代码
总结
Zsh Codex 为命令行带来了 AI 的力量,让编码变得更加高效和智能。
无论你是经验丰富的开发者还是编程新手,Zsh Codex 都能为你的工作流程带来显著改善。
虽然它并没有达到我想要的那种交互,即可以聊天式的生成我的命令,但是能够以注释的方式进行使用也算不错。
这个插件的代码是非常清晰的,并且也是MIT协议,可以尝试自己修改插件代码,来达到目的。
个人观点,仅供参考
原创 我码玄黄