工具的应用——安装copilot

一、介绍Copilot

copilot是一个AI辅助编程的助手,作为需要拥抱AI的程序员可以从此尝试进入,至于好与不好,应当是小马过河,各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题,然后把它总结下,供人借鉴。
工作的环境为ubuntu22.04,主要需要适配Qtcreator和VsCode。如果使用更高的版本安装会更简单,具体细节请参看下面的表述。

二、安装

1、QtCreator
第一步:升级QtCreator到15(13,14也可以),直接在QtCreator中升级“工具-Qt Maintenace”,里面的两个子菜单哪个都可以,最终都是可以升级的。需要说明的是,如果让你升级才能更新,一定要先升级(直接按界面要求点击下一步即可 )。
此处的麻烦在于,使用这种方式可能太慢,可以使用命令行的方式,到Qt安装的目录下,找到MaintenanceTool程序,打开终端:

./MaintenanceTool --mirror https://mirrors.ustc.edu.cn/qtproject  #其它的镜像也可以

第二步,安装Nodejs(18及以上,如已安装可略过)
sudo apt update
sudo apt install nodejs
第三步,安装neovim(vim版本必须为9及以上,如已安装可略过)
sudo apt install neovim
第四步,下载copilot.vim
git clone git@github.com:github/copilot.vim.git
mkdir -p ~/.vim/pack/github/start/
ln -s realpath ./copilot.vim ~/.vim/pack/github/start/copilot.vim
ls -l ~/.vim/pack/github/start/

mkdir -p ~/.config/nvim/pack/github/start/
ln -s realpath ./copilot.vim ~/.config/nvim/pack/github/start/copilot.vim
第五步,配置copilot:
打开vim或Neovim ,输入:Copilot setup (也可以查看相关帮助 :help copilot)
此时界面中会出现一个Device的码,同时自动打Github网页,把这个码拷贝到网页中(如果需要登录,请输入Github帐号和密码,注意Github的2FA)。点击确定即可。
第五步,配置QtCreator
在QtCreator中首先要启用copilot这个插件,在“帮助-关于插件”中,搜索copilot将其点成可用:
在这里插入图片描述

再打开“编辑-Preferences”,在对话框左侧找到copilot选项,会出现:
在这里插入图片描述

程序会自动的进行登录,然后变成“Sign out name”。
第七步,重启QtCreator并开始使用copilot
重启后即可使用copilot的相关功能。

2、VsCode
在VsCode中安装copilot非常简单只需要登陆Github,在界面左上角中找到copilot,点击进入。找到支持VsCode的选项(默认就是它),然后拷贝命令到VsCode命令面板(CTRL+P),执行即可自动安装。安装成功即可使用,非常简单,就不再赘述。

三、升级问题

在高版本的Ubuntu上如上述安装即可正常使用,但在ubuntu22.04中,首先需要升级Nodejs和vim(和neovim)。否则在打开vim时会自动提示相关版本过低。
1、升级VIM

sudo add-apt-repository ppa:jonathonf/vim
sudo apt-get update
sudo apt-get install vimsudo apt-add-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim

这个没有太大问题,问题可能就是稍微慢一些,但可以忍受。
2、升级NodeJs
先看升级的过程,因为直接安装使用“apt upgrade”会导致所有的软件升级,肯定是不能这么做。所以问了下AI,得到的方法如下:

VERSION=node_18.x
DISTRO=$(lsb_release -s -c)
echo "deb https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.listsudo apt install nodejs

结果安装过程中断,报一个错误“正试图覆盖 /usr/include/node/common.gypi,它同时被包含于软件包 libnode-dev 12”,这个比较麻烦,在网上找到的解决方法是:

sudo apt remove --purge nodejs (或libnode-dev)
sudo apt autoremove

看到后面的命令没,胆小了,没敢执行。上次就把libwrap0-dev给卸载了,导致生产项目无法编译通过。所以只执行了第一个命令,再安装:

sudo apt install nodejs(或 sudo apt install -y libnode-dev)

报下面的错误,“正试图覆盖 /usr/share/systemtap/tapset/node.stp,它同时被包含于软件包 libnode”,手动删除了这个文件,再次安装还是不行,后来查了很多资料都说需要执行autoremove,然后看了下相关的内容,没有wrap,反正即使删除了也知道如何再恢复,所以执行了"sudo apt autoremove"。
再安装,成功。
成功后的第一件事就是赶紧回到原来的工程,编译是否可以通过,事实证明确实没有问题。这才算正常安装完成。

四、总结

综上所述,版本的问题始终是一个非常麻烦的问题。此处如果是高版本的Ubuntu(同事是较新的Debian),安装就简单了许多。这里的问题是,网上的资料都是让在QtCreator中配置中直接“Sign in ”,但实际是在VIM中进行。这导致了一个反复重启和不知所以的操作问题。还是没找到具体的文档,当为之鉴!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10756.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java数据结构和算法(一)

1、综述 1.1 数据结构和算法能起到什么作用? 现实世界的数据存储程序员的工具建模 1.2 数据结构的概述 1.1.png 1.1_2.png 1.3 算法的概述 对于大多数数据结构来说,都需要知道 插入一条新的数据项寻找某一特定的数据项删除某一特定的数据项 还需要知道如…

如何使用tushare pro获取股票数据——附爬虫代码以及tushare积分获取方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 一、Tushare 介绍 Tushare 是一个提供中国股市数据的API接口服务,它允许用户…

git基础使用--1--版本控制的基本概念

git基础使用–1–版本控制的基本概念 1.版本控制的需求背景,即为啥需要版本控制 先说啥叫版本,这个就不多说了吧,我们写代码的时候肯定不可能一蹴而就,肯定是今天写一点,明天写一点,对于项目来讲&#xff…

c++ 定点 new 及其汇编解释

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…

数据结构的队列

一.队列 1.队列&#xff08;Queue&#xff09;的概念就是先进先出。 2.队列的用法&#xff0c;红色框和绿色框为两组&#xff0c;offer为插入元素&#xff0c;poll为删除元素&#xff0c;peek为查看元素红色的也是一样的。 3.LinkedList实现了Deque的接口&#xff0c;Deque又…

【Quest开发】手柄单手抓握和双手抓握物体切换

V72更新以后非常智能哈&#xff0c;配置物体简单多了。 选择需要被抓取的物体鼠标右键单击它&#xff0c;点Add Grab Interaction&#xff0c;按它要求的配置就行 配好以后长这样 把这个选项取消勾选就能切换成双手抓一个物体了&#xff0c;不需要像以前一样用各种grabTransfo…

DiffuEraser: 一种基于扩散模型的视频修复技术

视频修复算法结合了基于流的像素传播与基于Transformer的生成方法&#xff0c;利用光流信息和相邻帧的信息来恢复纹理和对象&#xff0c;同时通过视觉Transformer完成被遮挡区域的修复。然而&#xff0c;这些方法在处理大范围遮挡时常常会遇到模糊和时序不一致的问题&#xff0…

企业知识库的建设助力企业快速响应市场变化与提升内部效率

内容概要 在现代商业环境中&#xff0c;企业知识库被广泛视为提升组织运行效率和应对市场快速变化的重要工具。通过对企业知识库进行合理的建设&#xff0c;能够有效整合分散的信息资源&#xff0c;为决策层和执行团队提供及时、准确的信息支持。企业知识库不仅能够提升公司内…

react中useEffect的使用

2.useEffect-清楚副作用

SAP SD学习笔记28 - 请求计划(开票计划)之2 - Milestone请求(里程碑开票)

上一章讲了请求计划&#xff08;开票计划&#xff09;中的 定期请求。 SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求-CSDN博客 本章继续来讲请求计划&#xff08;开票计划&#xff09;的其他内容&#xff1a; Milestone请求(里程碑请求)。 目录 1&#xff0c;Miles…

Java中对消息序列化和反序列化并且加入到Spring消息容器中

--- 参考项目&#xff1a;苍穹外卖。 在对没有Java中的数据序列化时&#xff0c;比如说时间格式&#xff1a; 时间的格式是这种没有格式化的效果&#xff0c;因为在给前端返回数据时&#xff0c;返回的结果并没有序列化。 所以&#xff0c;需要对返回的数据序列化。 首先需…

课题介绍:水下惯性/地形组合导航精度提升的理论与方法研究

本课题旨在研究提升水下惯性/地形组合导航精度的理论与方法&#xff0c;以满足我国在科学探索和国防领域日益增长的需求。通过结合几何学中的球面最短弧法则与航天/航海学的姿态控制原理&#xff0c;构建新型球面最短弧姿态控制法&#xff0c;旨在提高水下航向控制的精度。同时…

Maya软件安装步骤与百度网盘链接

软件简介&#xff1a; MAYA软件是Autodesk旗下的著名三维建模和动画软件。maya软件功能更为强大&#xff0c;体系更为完善&#xff0c;因此国内很多的三维动画制作人员都开始转向maya&#xff0c;maya软件已成为三维动画软件的主流。 百度网盘链接: https://pan.baidu.com/s…

BurpSuite抓包与HTTP基础

文章目录 前言一、BurpSuite1.BurpSuite简介2.BurpSuite安装教程(1)BurpSuite安装与激活(2)安装 https 证书 3.BurpSuite使用4.BurpSuite资料 二、图解HTTP1.HTTP基础知识2.HTTP客户端请求消息3.HTTP服务端响应消息4.HTTP部分请求方法理解5.HTTPS与HTTP 总结 前言 在网络安全和…

JVM的GC详解

获取GC日志方式大抵有两种 第一种就是设定JVM参数在程序启动时查看&#xff0c;具体的命令参数为: -XX:PrintGCDetails # 打印GC日志 -XX:PrintGCTimeStamps # 打印每一次触发GC时发生的时间第二种则是在服务器上监控:使用jstat查看,如下所示&#xff0c;命令格式为jstat -gc…

51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)

文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…

神经网络的数据流动过程(张量的转换和输出)

文章目录 1、文本从输入到输出&#xff0c;经历了什么&#xff1f;2、数据流动过程是张量&#xff0c;如何知道张量表达的文本内容&#xff1f;3、词转为张量、张量转为词是唯一的吗&#xff1f;为什么&#xff1f;4、如何保证词张量的质量和合理性5、总结 &#x1f343;作者介…

5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI

我们在实现个人中心的时候简单的搭建了一个主页UI&#xff0c;但是这个主页并不是我们需要的&#xff0c;在这一节我们将一起实现主页UI的搭建。 一、功能 主页UI的原型如下: 首页UI原型包括左侧菜单和顶部header&#xff0c;左侧菜单包含多个功能模块的链接&#xff1a;首页…

Spring Boot 实例解析:从概念到代码

SpringBoot 简介&#xff1a; 简化 Spring 应用开发的一个框架整合 Spring 技术栈的一个大整合J2EE 开发的一站式解决方案优点&#xff1a;快速创建独立运行的 Spring 项目以及与主流框架集成使用嵌入式的 Servlet 容器&#xff0c;应用无需打成 war 包&#xff0c;内嵌 Tomcat…

精准化糖尿病知识问答(LLM+机器学习预测模型)

精准化糖尿病知识问答&#xff08;LLM机器学习预测模型&#xff09; 关键词&#xff1a;精准化&#xff1b;糖尿病&#xff08;慢病&#xff09; 这里主要是对APP部署途径的叙述&#xff0c;在这之前讨论两个问题&#xff1a; 慢性疾病适用什么样的预测模型。对于糖尿病等慢病…