Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jayli/nvim-ai-coding
nvim ai coding plugin
https://github.com/jayli/nvim-ai-coding
Last synced: 19 days ago
JSON representation
nvim ai coding plugin
- Host: GitHub
- URL: https://github.com/jayli/nvim-ai-coding
- Owner: jayli
- License: mit
- Created: 2023-07-01T17:48:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-12T16:38:11.000Z (11 months ago)
- Last Synced: 2024-11-11T16:41:37.701Z (about 1 month ago)
- Language: Vim Script
- Size: 79.1 KB
- Stars: 17
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-vim-llm-plugins - jayli/nvim-ai-coding
README
# ![nvim-ai-coding](https://github.com/jayli/nvim-ai-coding/assets/188244/88a28ce3-3240-4793-9637-ef046eaf269a)
基于 chatgpt 写代码的 nvim 插件
https://github.com/jayli/nvim-ai-coding/assets/188244/337f0f5c-78b5-4ea1-a276-2868b12562f7
## 一)安装:
### 1. 安装插件
基于 vim-plug 安装, 在 `~/.vimrc` 中添加:
```vim
Plug 'jayli/nvim-ai-coding'
```然后执行`:PlugInstall`
基于 Packer.nvim 安装,在`init.lua`中添加:
```lua
use { 'jayli/nvim-ai-coding' }
```然后执行 `:PackerInstall`
### 2. 安装 python 依赖
本地 python 3.9 及以上版本,打开命令行执行
```shell
pip install requests langchain openai
```或者在插件跟目录下执行:
```shell
pip install -r requirements.txt
```### 3. 配置 API 类型和 api key
默认支持四类 API,根据你的需要四选一:
- OpenAI
- APISpace
- API2D
- 自定义 API**1) OpenAI API key:**
```vim
let g:nvim_ai_llm = 'openai'
let g:nvim_ai_apikey = 'xxxx'
```如果已经配置环境变量`OPENAI_API_KEY`,则可以不用配置`g:nvim_ai_apikey`。
**2) APISpace API:**
```vim
let g:nvim_ai_llm = "apispace"
let g:nvim_ai_apikey = "xxx"
```**3) API2D**
```vim
let g:nvim_ai_llm = 'api2d'
let g:nvim_ai_apikey = 'xxx'" 大模型配置(可选)
let g:nvim_ai_model = "gpt-4-1106-preview"
```API2D 默认支持流式输出,若不想流式输出,配置`g:nvim_ai_stream = 0`。
`g:nvim_ai_model`如果不配置则默认为`gpt-3.5-turbo-0613`,参考值可以配置`gpt-3.5-turbo`或者`gpt-4`等(推荐`gpt-4-1106-preview`)。
**4) 自定义 API:**
```vim
let g:nvim_ai_llm = 'custom'
let g:nvim_ai_custom_api = 'http://127.0.0.1:8000'
```确保自定义接口符合如下格式:接口提交格式 POST:
```json
{"prompt": "你是基于什么大模型回答问题", "history": []}
```接口返回格式:
```json
{"response": "我是基于gpt4来回答你的问题。"}
```### 4. 更多配置
如果希望绑定其他快捷键,可以重新绑定:
```vim
" 默认用 co 唤醒 prompt 输入窗,你可以将 co 改成其他的快捷键
nmap co AICoding
xmap co AICoding
```## 二)使用
- 生成模式:Normal 模式下 `co` 唤起输入窗,回车后发送问题并返回结果,`` 关闭输入窗。
- 修改模式:选中一段代码,`co` 唤起输入窗,输入指令后,则将针对你选中的代码根据你的指令进行返回。插件内置了一个简单的 prompt 样板,如果你要新增 prompt,插件可以模糊匹配出你常用的 prompt,这样配置:
```
let g:nvim_ai_prompt = ["/file/path/to/your/prompt.txt", "/another/prompt.txt"]
```也可以直接给一个字符串:
```
let g:nvim_ai_prompt = "/file/path/to/your/prompt.txt"
```如果不想加载默认的 prompt 来避免干扰,你可以这样关掉:
```
let g:nvim_ai_default_prompt = 0
```插件会默认自动记录你的 prompt 历史,可以配置`g:nvim_ai_history_prompt = 0`来关闭历史记录。prompt 历史位于:
- Linux/MacOS:`$HOME/.local/share/nvim/nvim-ai-coding/history.txt`
- Windows:`$HOME/AppData/Local/nvim/nvim-ai-coding/history.txt`## 三)LICENSE
MIT