编程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☆)
#inlinemodel:openai - 2023-02-08 jdnewman85/openai-vim (5☆)
#inlinemodel:openai - 2023-04-06 thmsmlr/gpt.nvim (20☆)
#inlinemodel:openai - 2023-04-06 aduros/ai.vim (265☆)
#inlinemodel:openai - 2023-05-02 dpayne/CodeGPT.nvim (698☆)
#inline#templatesmodel:openai - 2023-06-25 madox2/vim-ai (354☆)
#inline#chat#templatesmodel:openai - 2023-07-03 oelmekki/make-my-code-better.vim (2☆)
#inlinemodel:openai - 2023-07-13 tom-doerr/vim_codex (245☆)
#inlinemodel:openai - 2023-07-20 gsuuon/llm.nvim (38☆)
#inline#templatesmodel:openaimodel:bardmodel:huggingfacemodel:local - 2023-08-02 CoderCookE/vim-chatgpt (141☆)
#inlinemodel:openai - 2023-08-16 jackMort/ChatGPT.vim (2500☆)
#inline#workflow#chat#templatesmodel:openai - 2023-08-18密集分析/神经(313☆)
#inlinemodel:openai - 2023-08-19 jayli/nvim-ai-coding (6☆)
#inlinemodel:openai - 2023-03-18 0xStabby/chatgpt-vim (47☆)
#inlinemodel:chatgptmodel:openai
以对话为中心
这些插件的功能都非常相似。Robitx /gp.nvim以丰富的配置选项脱颖而出,并且还包括用于编写和编辑代码的命令(即与上面的部分重叠)。
- 2023-01-07 lambdalisue/butler.vim (29☆)
#chatmodel:openai - 2023-03-26 IwasakiYuuki/ai-assistant.nvim (3☆)
#chatmodel:openai - 2023-04-22 macrat/askgpt.vim (2☆)
#chatmodel:openai - 2023-07-26 yuki-yano/ai-review.vim (16☆)
#chatmodel:openai - 2023-08-11 charlespascoe/vim-chatgpt (1☆)
#chatmodel:openai - 2023-08-12 micheam/ai-assistant-console (0☆)
#chatmodel:openai - 2023-08-23 CamdenClark/flyboy (25☆)
#chatmodel:openai - 2023-08-28 Robitx/gp.nvim (55☆)
#inline#chat#templatesmodel:openai - 2023-08-29 martineausimon/nvim-bard (21☆)
#chatmodel:bard
Tab 补全
这些插件的功能也几乎相同,也许更重要的是比较 (1) 订阅费用是多少,以及 (2) 输出质量。一个突出的插件是huggingface/llm.nvim,它使用托管在 Hugging Face 上的免费推理端点。
- 2023-05-10 tzachar/cmp-tabnine (263☆)
#autocompletemodel:custom - 2023-08-22 github/copilot.vim (6000☆)
#autocompletemodel:custom - 2023-08-25 zbirenbaum/copilot.lua (1400☆)
#autocompletemodel:custom - 2023-08-28 codota/tabnine-nvim(206☆)
#autocomplete#chatmodel:custom - 2023-08-30 Exafunction/codeium.vim (2100☆)
#autocompletemodel:custom - 2023-08-31 huggingface/llm.nvim (243☆)
#autocompletemodel:huggingface - 2023-08-31 zbirenbaum/copilot-cmp (723☆)
#autocompletemodel:custom - 2023-09-01 TabbyML/虎斑(9500☆)
#autocompletemodel:custom
其他
james1236/backseat.nvim在代码行之间提供注释,而svermeulen/text-to-colorscheme有助于在编程时设定心情。
- 2023-04-15 james1236/backseat.nvim (143☆)
#augmentmodel:openai - 2023-05-27 mthbernardes/codeexplain.nvim (79☆)
#augmentmodel:local - 2023-06-26 svermeulen/文本转颜色方案(187☆)
#othermodel: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&…...
Shell篇-字符串处理
目录 1.变量引用 2.获取字符串长度 3.字符串截取 4.删除子字符串 5.字符串替换 总结: Bash(Shell 脚本)中的字符串处理语法。以下是对其的介绍和总结:Bash 变量可以使用不同的语法来获取、修改和删除字符串的内容。图片中列…...
Ubuntu16.04编译安装Cartographer 1.0版本
说明 官方文档 由于Ubuntu16.04已经是很老的系统,如果直接按照Cartographer官方安装文档安装会出现代码编译失败的问题,本文给出了解决这些问题的办法。正常情况下执行本文给出的安装方法即可成功安装。 依赖安装 # 这里和官方一致 # Install the req…...
使用Pygame制作“走迷宫”游戏
1. 前言 迷宫游戏是最经典的 2D 游戏类型之一:在一个由墙壁和通道构成的地图里,玩家需要绕过障碍、寻找通路,最终抵达出口。它不但简单易实现,又兼具可玩性,还能在此基础上添加怪物、道具、机关等元素。本篇文章将展示…...
C++并发编程指南04
文章目录 共享数据的问题3.1.1 条件竞争双链表的例子条件竞争示例恶性条件竞争的特点 3.1.2 避免恶性条件竞争1. 使用互斥量保护共享数据结构2. 无锁编程3. 软件事务内存(STM) 总结互斥量与共享数据保护3.2.1 互斥量使用互斥量保护共享数据示例代码&…...
算法8--归并
目录 原理经典例题[912. 排序数组](https://leetcode.cn/problems/sort-an-array/description/)[LCR 170. 交易逆序对的总数](https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof/description/)计算右侧小于当前元素的个数[493. 翻转对](https://leetcode.cn/proble…...
8.攻防世界Web_php_wrong_nginx_config
进入题目页面如下 尝试弱口令密码登录 一直显示网站建设中,尝试无果,查看源码也没有什么特别漏洞存在 用Kali中的dirsearch扫描根目录试试 命令: dirsearch -u http://61.147.171.105:53736/ -e* 登录文件便是刚才登录的界面打开robots.txt…...
Python-基于PyQt5,pdf2docx,pathlib的PDF转Word工具(专业版)
前言:日常生活中,我们常常会跟WPS Office打交道。作表格,写报告,写PPT......可以说,我们的生活已经离不开WPS Office了。与此同时,我们在这个过程中也会遇到各种各样的技术阻碍,例如部分软件的PDF转Word需要收取额外费用等。那么,可不可以自己开发一个小工具来实现PDF转…...
基于Langchain-Chatchat + ChatGLM 本地部署知识库
一、相关环境 参考链接: Github:https://github.com/chatchat-space/Langchain-Chatchat Langchain-chatchat版本:v0.3.1 安装环境:Ubuntu:22.04,CUDA:12.1 二、搭建过程 2.1 环境配置 2.1.1 创建chatchat虚拟环…...
Elixir语言的安全开发
Elixir语言的安全开发 引言 在当今这个互联网高度发展的时代,软件的安全性变得越来越重要。随着网络攻击的增多,软件漏洞的频繁暴露,开发者面临着前所未有的安全挑战。Elixir,作为一种现代化的函数式编程语言,以其高…...
grpc 和 http 的区别---二进制vsJSON编码
gRPC 和 HTTP 是两种广泛使用的通信协议,各自适用于不同的场景。以下是它们的详细对比与优势分析: 一、核心特性对比 特性gRPCHTTP协议基础基于 HTTP/2基于 HTTP/1.1 或 HTTP/2数据格式默认使用 Protobuf(二进制)通常使用 JSON/…...
Cypher入门
文章目录 Cypher入门创建数据查询数据matchoptional matchwhere分页with 更新数据删除数据实例:好友推荐 Cypher入门 Cypher是Neo4j的查询语言。 创建数据 在Neo4j中使用create命令创建节点、关系、属性数据。 create (n {name:$value}) return n //创建节点&am…...
Dijkstra算法解析
Dijkstra算法,用于求解图中从一个起点到其他所有节点的最短路径。解决单源最短路径问题的有效方法。 条件 有向 带权路径 时间复杂度 O(n平方) 方法步骤 1 把图上的点分为两个集合 要求的起点 和除了起点之外的点 。能直达的写上权值 不…...
CNN的各种知识点(五):平均精度均值(mean Average Precision, mAP)
平均精度均值(mean Average Precision, mAP) 1. 平均精度均值(mean Average Precision, mAP)概念:计算步骤:具体例子:重要说明:典型值范围: 总结: 1. 平均精度…...
深度学习深度解析:从基础到前沿
引言 深度学习作为人工智能的一个重要分支,通过模拟人脑的神经网络结构来进行数据分析和模式识别。它在图像识别、自然语言处理、语音识别等领域取得了显著成果。本文将深入探讨深度学习的基础知识、主要模型架构以及当前的研究热点和发展趋势。 基础概念与数学原理…...
如何使用SliverGrid组件
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverList组件相关的内容,本章回中将介绍SliverGrid组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverGrid组件是一种网格类组件,主要用来…...
B+ 树的实现原理与应用场景
B 树是如何实现的全面分析 在进行数据库和文件系统的设计中,B 树是一种常用的数据结构。它不仅是 B 树的延伸,而且团结了性能优化和实现上的优势。本文将从学术理论和实现程序的角度,分析 B 树是如何实现的,以及它依赖于哪些具体…...
K8S集群架构及主机准备
本次集群部署主机分布K8S集群主机配置主机静态IP设置主机名解析ipvs管理工具安装及模块加载主机系统升级主机间免密登录配置主机基础配置完后最好做个快照备份 2台负载均衡器 Haproxy高可用keepalived3台k8s master节点5台工作节点(至少2及以上)本次集群部署主机分布 K8S集群主…...
012-51单片机CLD1602显示万年历+闹钟+农历+整点报时
1. 硬件设计 硬件是我自己设计的一个通用的51单片机开发平台,可以根据需要自行焊接模块,这是用立创EDA画的一个双层PCB板,所以模块都是插针式,不是表贴的。电路原理图在文末的链接里,PCB图暂时不选择开源。 B站上传的…...
数据分析系列--[11] RapidMiner,K-Means聚类分析(含数据集)
一、数据集 二、导入数据 三、K-Means聚类 数据说明:提供一组数据,含体重、胆固醇、性别。 分析目标:找到这组数据中需要治疗的群体供后续使用。 一、数据集 点击下载数据集 二、导入数据 三、K-Means聚类 Ending, congratulations, youre done....
深度学习查漏补缺:1.梯度消失、梯度爆炸和残差块
一、梯度消失 梯度消失的根本原因在于 激活函数的性质和链式法则的计算: 激活函数的导数很小: 常见的激活函数(例如 Sigmoid 和 Tanh)在输入较大或较小时,输出趋于饱和(Sigmoid 的输出趋于 0 或 1…...
于动态规划的启幕之章,借 C++ 笔触绘就算法新篇
注意:代码由易到难 P1216 [IOI 1994] 数字三角形 Number Triangles 题目链接:[IOI 1994] 数字三角形 Number Triangles - 洛谷 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每…...
基于开源2 + 1链动模式AI智能名片S2B2C商城小程序的内容创作与传播效能探究
摘要:本文围绕开源2 1链动模式AI智能名片S2B2C商城小程序,深入探讨在其应用场景下内容创作与传播效果的关键要素——转发数与转化率。通过剖析如何创作引发用户共鸣、提升用户信任的内容,阐明深度思考内容本质对于实现有效传播的重要性&…...
Web - CSS3基础语法与盒模型
概述 这篇文章是关于 Web 前端 CSS3 的基础语法与盒模型的讲解。包括 CSS3 层叠性及处理冲突规则、伪元素和新增伪类元素、属性选择器等。还介绍了文本与字体属性,如段落和行相关属性、字体文本属性。最后阐述了盒子模型,如元素隐藏、行内与块元素转换、…...
自然语言处理-词嵌入 (Word Embeddings)
人工智能例子汇总:AI常见的算法和例子-CSDN博客 词嵌入(Word Embedding)是一种将单词或短语映射到高维向量空间的技术,使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息,使得相似的词在向量空间中具有…...
深度学习之“线性代数”
线性代数在深度学习中是解决多维数学对象计算问题的核心工具。这些数学对象包括标量、向量、矩阵和张量,借助它们可以高效地对数据进行操作和建模。以下将详细介绍这些数学对象及其在深度学习中的典型用途。 数学对象概述 标量 标量是最简单的数学对象࿰…...
SpringBoot的配置(配置文件、加载顺序、配置原理)
文章目录 SpringBoot的配置(配置文件、加载顺序、配置原理)一、引言二、配置文件1、配置文件的类型1.1、配置文件的使用 2、多环境配置 三、加载顺序四、配置原理五、使用示例1、配置文件2、配置类3、控制器 六、总结 SpringBoot的配置(配置文件、加载顺序、配置原理) 一、引言…...
【C++语言】卡码网语言基础课系列----13. 链表的基础操作I
文章目录 背景知识链表1、虚拟头节点(dummyNode)2、定义链表节点3、链表的插入 练习题目链表的基础操作I具体代码实现 小白寄语诗词共勉 背景知识 链表 与数组不同,链表的元素存储可以是连续的,也可以是不连续的,每个数据除了存储本身的信息…...
python小知识-jupyter lab
python小知识-jupyter lab 1. Jupyter Lab功能介绍 Jupyter Lab 是一个基于网页的交互式开发环境,它支持 Jupyter Notebook、文本编辑器、终端、数据可视化以及其他自定义组件。它提供了一个灵活的用户界面,允许用户创建和共享包含实时代码、方程、可视…...
数组—学习
1.基础知识 1. 高精度计算 高精度算法是处理大数(超过64位)的计算方法。C标准库没有直接支持大数运算,因此需要使用数组来模拟大数的存储和运算。 2. 全局静态数组 全局变量(包括静态数组)在C中会在程序启动时自动初…...
