当前位置: 首页 > news >正文

编程AI深度实战:给vim装上AI

系列文章:

编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客

编程AI深度实战:自己的AI,必会LangChain-CSDN博客

编程AI深度实战:给vim装上AI-CSDN博客

编程AI深度实战:火的编程AI,都在用语法树(AST)-CSDN博客

编程AI深度实战:让verilog不再是 AI 的小众语言-CSDN博客

文末有vim-ollama安装指南。

VIM AI插件列表

以下是 GitHub 上托管的 vim 和 neovim 插件的详尽列表,这些插件使用大型语言模型,并在 2023 年 1 月 1 日之后提交。为了优化以获得最大新鲜度,插件按上次提交日期的顺序列出。

代码编写和编辑

成熟、功能齐全、可配置的插件以粗体突出显示

  • 2023-01-16 naps62/pair-gpt.nvim (35☆)#inline model:openai
  • 2023-02-08 jdnewman85/openai-vim (5☆)#inline model:openai
  • 2023-04-06 thmsmlr/gpt.nvim (20☆)#inline model:openai
  • 2023-04-06 aduros/ai.vim (265☆)#inline model:openai
  • 2023-05-02 dpayne/CodeGPT.nvim (698☆)#inline #templates model:openai
  • 2023-06-25 madox2/vim-ai (354☆)#inline #chat #templates model:openai
  • 2023-07-03 oelmekki/make-my-code-better.vim (2☆)#inline model:openai
  • 2023-07-13 tom-doerr/vim_codex (245☆)#inline model:openai
  • 2023-07-20 gsuuon/llm.nvim (38☆)#inline #templates model:openai model:bard model:huggingface model:local
  • 2023-08-02 CoderCookE/vim-chatgpt (141☆)#inline model:openai
  • 2023-08-16 jackMort/ChatGPT.vim (2500☆)#inline #workflow #chat #templates model:openai
  • 2023-08-18密集分析/神经(313☆)#inline model:openai
  • 2023-08-19 jayli/nvim-ai-coding (6☆)#inline model:openai
  • 2023-03-18 0xStabby/chatgpt-vim (47☆)#inline model:chatgpt model:openai

以对话为中心

这些插件的功能都非常相似。Robitx /gp.nvim以丰富的配置选项脱颖而出,并且还包括用于编写和编辑代码的命令(即与上面的部分重叠)。

  • 2023-01-07 lambdalisue/butler.vim (29☆)#chat model:openai
  • 2023-03-26 IwasakiYuuki/ai-assistant.nvim (3☆)#chat model:openai
  • 2023-04-22 macrat/askgpt.vim (2☆)#chat model:openai
  • 2023-07-26 yuki-yano/ai-review.vim (16☆)#chat model:openai
  • 2023-08-11 charlespascoe/vim-chatgpt (1☆)#chat model:openai
  • 2023-08-12 micheam/ai-assistant-console (0☆)#chat model:openai
  • 2023-08-23 CamdenClark/flyboy (25☆)#chat model:openai
  • 2023-08-28 Robitx/gp.nvim (55☆)#inline #chat #templates model:openai
  • 2023-08-29 martineausimon/nvim-bard (21☆)#chat model:bard

Tab 补全

这些插件的功能也几乎相同,也许更重要的是比较 (1) 订阅费用是多少,以及 (2) 输出质量。一个突出的插件是huggingface/llm.nvim,它使用托管在 Hugging Face 上的免费推理端点。

  • 2023-05-10 tzachar/cmp-tabnine (263☆)#autocomplete model:custom
  • 2023-08-22 github/copilot.vim (6000☆)#autocomplete model:custom
  • 2023-08-25 zbirenbaum/copilot.lua (1400☆)#autocomplete model:custom
  • 2023-08-28 codota/tabnine-nvim(206☆)#autocomplete #chat model:custom
  • 2023-08-30 Exafunction/codeium.vim (2100☆)#autocomplete model:custom
  • 2023-08-31 huggingface/llm.nvim (243☆)#autocomplete model:huggingface
  • 2023-08-31 zbirenbaum/copilot-cmp (723☆)#autocomplete model:custom
  • 2023-09-01 TabbyML/虎斑(9500☆)#autocomplete model:custom

其他

james1236/backseat.nvim在代码行之间提供注释,而svermeulen/text-to-colorscheme有助于在编程时设定心情。

  • 2023-04-15 james1236/backseat.nvim (143☆)#augment model:openai
  • 2023-05-27 mthbernardes/codeexplain.nvim (79☆)#augment model:local
  • 2023-06-26 svermeulen/文本转颜色方案(187☆)#other model:openai

标签说明

功能

  • #inline:在当前缓冲区中编写、编辑或注释代码。在有限的情况下,可能会使用弹出窗口、窗口或选项卡来显示信息。
  • #chat:实现专注于对话的接口,但对从缓冲区复制/复制到缓冲区没有提供大量支持。
  • #templates:支持构建自定义命令、提示或管道。
  • #workflow:在将更改提交到当前缓冲区之前编辑代码或查看差异的重要功能。
  • #augment:以某种方式增强编程体验,但不会编写或编辑代码。
  • #other:与编程无关,但仍在编辑器中出于某些目的使用 AI。

模型

  • model:openai:OpenAI API。
  • model:chatgpt:ChatGPT 网络界面(无 API)。
  • model:bard:Google PaLM API。
  • model:huggingface:Hugging Face 推理 API。
  • model:local:本地模型(例如调用 llama.cpp)。
  • model:custom:任何其他没有官方开放 API 的模型。

vim-ollama 安装和使用

实际各个插件大同小异,核心的还是大模型本身,运作模式,对代码的处理。

利用vim-ollama这个vim插件,可以在vim内和本地大模型聊天。

【安装和使用】  
1️⃣ 安装
- git clone GitHub - gergap/vim-ollama: Vim plugin for integrating Ollama based LLM (large language models) ~/.vim/pack/others/start/vim-ollama

-配置~/.vimrc的一个例子

" Default chat model
let g:ollama_chat_model = 'llama3'

" Codellama models
let g:ollama_model = 'codellama:13b-code'
let g:ollama_model = 'codellama:7b-code'
let g:ollama_model = 'codellama:code'

" Codegemma (small and fast)
let g:ollama_model = 'codegemma:2b'

" qwen2.5-coder (0.5b, 1.5b, 3b, 7b, 14b, 32b)
" smaller is faster, bigger is better"
" https://ollama.com/library/qwen2.5-coder
let g:ollama_model = 'qwen2.5-coder:3b'

" Deepseek-coder-v2
let g:ollama_model = 'deepseek-coder-v2:16b-lite-base-q4_0'

2️⃣ 使用 
vim内 :OllamaChat, :OllamaReview, :OllamaTask. Review前可以先visual选定代码,否则就是整个文件
 

【基础环境】  

ollama

但是这个是感知不了代码的结构的,要感知代码结构请跳转到:

编程AI深度实战:让verilog不再是 AI 的小众语言-CSDN博客

编程AI深度实战:火的编程AI,都在用语法树(AST)-CSDN博客

相关文章:

编程AI深度实战:给vim装上AI

系列文章: 编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客 编程AI深度实战:自己的AI,必会LangChain-CSDN博客 编程AI深度实战:给vim装上AI-CSDN博客 编程AI深度实战:火的编程AI&…...

《DeepSeek R1:大模型最简安装秘籍》

DeepSeek R1:AI 大模型界的新起之秀 在人工智能的璀璨星空中,大模型如繁星般闪耀,而 DeepSeek R1 无疑是其中一颗冉冉升起的新星,自问世以来便吸引了全球的目光,在人工智能领域占据了重要的一席之地。 从性能表现上看…...

物业管理平台系统为社区管理带来数字化转型与服务创新新机遇

内容概要 物业管理平台系统是数字化转型的利器,为社区管理带来了许多新机遇。想象一下,传统社区物业管理中繁琐的流程和低效的沟通如何被这种智能系统所替代。通过集成在线收费功能,我们不仅提高了费用收取的准确性,还减少了业主…...

红黑树的封装

一、封装思路 在 STL 中 map set 的底层就是封装了一棵红黑树。 其中连接红黑树和容器的是迭代器,map set 暴露出的接口都不是自己写的,而是红黑树写的,外部接口封装红黑树接口。 所以写出红黑树为 map set 写的接口,再在上层的…...

25.2.3 【洛谷】作为栈的复习不错(学习记录)

今天学习的东西不算多,放了一个星期假,感觉不少东西都没那么清楚,得复习一下才行。今天搞个栈题写,把栈复习一下,明天进入正轨,边复习边学习新东西,应该会有二叉树的学习等等... 【洛谷】P1449 …...

MFC程序设计(七)运行时类信息机制

运行时类信息机制的作用 我们在创建对象时,自己是清楚对象属于哪个类,但是计算机却不清楚。而MFC运行时类信息机制就是解决这个问题而存在的 运行时类信息机制的使用 我们在创建一个类时,只有满足以上三个条件,该类才能支持运行时…...

fflush的概念和使用案例

fflush() 是C语言标准库中用于控制输入/输出缓冲区的函数,其主要功能是强制刷新缓冲区,确保数据及时写入目标设备(如屏幕、文件)。以下是其概念和典型使用场景: 概念 功能: 刷新指定流的缓冲区。对于输出流…...

嵌入式知识点总结 操作系统 专题提升(四)-上下文

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.上下文有哪些?怎么理解? 2.为什么会有上下文这种概念? 3.什么情况下进行用户态到内核态的切换? 4.中断上下文代码中有哪些注意事项? 5.请问线程需要保存哪些…...

React 封装高阶组件 做路由权限控制

React 高阶组件是什么 官方解释∶ 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。 高阶组件(HOC)就是一个函数&…...

【实践案例】基于大语言模型的海龟汤游戏

文章目录 项目背景提示词构建海龟汤主持人真相判断专家 具体实现流程文心一言大语言模型“海龟汤”插件参考 项目背景 “海龟汤”作为一种聚会类桌游,又称情境推理游戏,是一种猜测情境还原事件真相的智力游戏。其玩法是由出题者提出一个难以理解的事件&…...

NeetCode刷题第20天(2025.2.1)

文章目录 106 Best Time to Buy and Sell Stock with Cooldown 使用 Cooldown 买卖股票的最佳时间107 Coin Change II 换币 II108 Target Sum 目标总和109 Interleaving String 交错字符串110 Edit Distance 编辑距离111 Maximum Subarray 最大子数组112 Jump Game 跳跃游戏113…...

DeepSeek:人工智能领域的革新者与未来展望

在当今这个数据驱动的时代,人工智能(AI)正以前所未有的速度发展,而DeepSeek作为这一领域的先锋,正引领着AI技术的创新与突破。作为一家致力于推动人工智能技术创新与应用的前沿企业,DeepSeek不仅在多语言编…...

Spring Bean 容器

技术成长,是对场景设计细节不断的雕刻! 你觉得自己的技术什么时候得到了快速的提高,是CRUD写的多了以后吗?想都不要想,绝对不可能!CRUD写的再多也只是能满足你作为一个搬砖工具人,敲击少逻辑流…...

Flask代码审计实战

文章目录 Flask代码审计SQL注入命令/代码执行反序列化文件操作XXESSRFXSS其他 审计实战后记reference Flask代码审计 SQL注入 1、正确的使用直白一点就是:使用”逗号”,而不是”百分号” stmt "SELECT * FROM table WHERE id?" connectio…...

springboot启动配置文件-bootstrap.yml常用基本配置

在Spring Boot应用程序中,bootstrap.yml文件通常用于配置应用程序的启动阶段。在这个文件中,你可以配置一些在应用程序启动之前需要加载的属性,例如外部配置源、加密属性等。以下是一些常用的基本配置项: 1. 外部配置源 1.1 配置…...

2月3日星期一今日早报简报微语报早读

2月3日星期一,农历正月初六,早报#微语早读。 1、多个景区发布公告:售票数量已达上限,请游客合理安排行程; 2、2025春节档总票房破70亿,《哪吒之魔童闹海》破31亿; 3、美宣布对中国商品加征10…...

如何确认Linux嵌入式系统的触摸屏对应的是哪个设备文件(/dev/input/event1)?如何查看系统中所有的输入设备?输入设备的设备文件有什么特点?

Linux嵌入式系统的输入设备的设备文件有什么特点? 在 Linux 中,所有的输入设备(如键盘、鼠标、触摸屏等)都会被内核识别为 输入事件设备,并在 /dev/input/ 目录下创建相应的 设备文件,通常是: …...

FFmpeg:多媒体处理的瑞士军刀

FFmpeg:多媒体处理的瑞士军刀 前言 FFmpeg 是一个功能强大且跨平台的开源多媒体框架,广泛应用于音视频处理领域。 它由多个库和工具组成,能够处理各种音视频格式,涵盖编码、解码、转码、流处理等多种操作。 无论是专业视频编辑…...

电控三周速成计划参考

第1周:基础搭建与GPIO控制 学习目标:建立开发环境,掌握最基础的硬件控制能力 每日学习(2-3小时): 环境搭建(2天) 安装Keil MDK-ARM STM32CubeMX使用CubeMX创建第一个工程&#xf…...

Ubuntu修改配置文件--编辑操作

例如。 1.打开 /etc/samba/smb.conf 该配置文件: sudo vi /etc/samba/smb.conf 2.当你运行sudo vi /etc/samba/smb.conf命令后,你需要按i键进入插入模式(Insert Mode)。这时,在屏幕底部你应该能看到“-- INSERT --”…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...