综合介绍
VimLM是一个Vim插件,提供了一个由本地LLM(大语言模型)驱动的代码助手。通过Vim命令与本地LLM模型交互,自动获取代码上下文,帮助用户在Vim中进行代码编辑。VimLM的设计灵感来自GitHub Copilot和Cursor,集成了上下文代码理解、代码总结和AI辅助功能,直接嵌入到Vim的工作流程中。它支持多种MLX兼容模型,具有直观的键绑定和分屏响应,确保用户在离线环境中安全使用,无需API调用或数据泄露。
功能列表
- 模型无关:通过配置文件使用任何MLX兼容模型
- Vim原生用户体验:直观的键绑定和分屏响应
- 深度上下文理解:从当前文件、可视选择、引用文件和项目目录结构中获取代码上下文
- 对话式编码:通过后续查询进行迭代优化
- 离线安全:完全离线使用,无需API调用或数据泄露
- 代码提取与替换:从响应中插入代码块到选择区域
- 外部上下文添加:通过!include命令添加外部文件或文件夹到上下文
- 项目文件生成:通过!deploy命令生成项目文件
- 响应继续生成:通过!continue命令继续生成被中断的响应
- 线程延续:通过!followup命令继续当前线程
使用帮助
安装流程
- 确保系统中安装了Python 3.12.8。
- 使用pip安装VimLM:
pip install vimlm
基本使用
- 从普通模式:
- 按
Ctrl-l
:将当前行和文件添加到上下文。 - 示例提示:“从item.content中移除HTML标签的正则表达式”。
- 按
- 从可视模式:
- 选择代码块后按
Ctrl-l
:将选定块和当前文件添加到上下文。 - 示例提示:“将此代码转换为async/await语法”。
- 选择代码块后按
- 后续对话:
- 按
Ctrl-j
:继续当前线程。 - 示例后续:“改用Manifest V3”。
- 按
- 代码提取与替换:
- 按
Ctrl-p
:将响应中的代码块插入到最后选择的区域(普通模式)或活动选择区域(可视模式)。 - 示例工作流程:在可视模式中选择一段代码,按
Ctrl-l
提示“将此代码转换为async/await语法”,然后按Ctrl-p
替换选择的代码。
- 按
- 内联命令:
!include
:添加外部上下文。- 示例:“将此应用程序AJAX化 !include ~/scrap/hypermedia-applications.summ.md”。
!deploy
:生成项目文件。- 示例:“创建REST API端点 !deploy ./api”。
!continue
:继续生成响应。- 示例:“总结 !include large-file.txt !continue 5000”。
!followup
:继续当前线程。- 示例:“创建Chrome扩展”。
详细操作流程
- 添加上下文:
- 在普通模式下,按
Ctrl-l
将当前行和文件添加到上下文。 - 在可视模式下,选择代码块后按
Ctrl-l
将选定块和当前文件添加到上下文。
- 在普通模式下,按
- 生成代码:
- 在普通模式或可视模式下,按
Ctrl-l
提示生成代码。 - 按
Ctrl-p
将生成的代码插入到选择区域。
- 在普通模式或可视模式下,按
- 后续对话:
- 按
Ctrl-j
继续当前线程,进行迭代优化。
- 按
- 添加外部上下文:
- 使用
!include
命令添加外部文件或文件夹到上下文。 - 示例:“将此应用程序AJAX化 !include ~/scrap/hypermedia-applications.summ.md”。
- 使用
- 生成项目文件:
- 使用
!deploy
命令生成项目文件。 - 示例:“创建REST API端点 !deploy ./api”。
- 使用
- 继续生成响应:
- 使用
!continue
命令继续生成被中断的响应。 - 示例:“总结 !include large-file.txt !continue 5000”。
- 使用
- 线程延续:
- 使用
!followup
命令继续当前线程。 - 示例:“创建Chrome扩展”。
- 使用