工具的应用——安装copilot

news2025/2/3 11:43:04

一、介绍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 vim


sudo 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.list

sudo 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.coloradmin.cn/o/2291245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Alibaba开发规范_编程规约之命名风格

文章目录 命名风格的基本原则1. 命名不能以下划线或美元符号开始或结束2. 严禁使用拼音与英文混合或直接使用中文3. 类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等4. 方法名、参数名、成员变量、局部变量使用 low…

MATLAB中的IIR滤波器设计

在数字信号处理中,滤波器是消除噪声、提取特征或调整信号频率的核心工具。其中,无限脉冲响应(IIR)滤波器因其低阶数实现陡峭滚降的特性,被广泛应用于音频处理、通信系统和生物医学工程等领域。借助MATLAB强大的工具箱&…

vector容器(详解)

本文最后是模拟实现全部讲解,文章穿插有彩色字体,是我总结的技巧和关键 1.vector的介绍及使用 1.1 vector的介绍 https://cplusplus.com/reference/vector/vector/(vector的介绍) 了解 1. vector是表示可变大小数组的序列容器。…

python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像匹配

【1】引言 前序学习了图像的常规读取和基本按位操作技巧,相关文章包括且不限于: python学opencv|读取图像-CSDN博客 python学opencv|读取图像(四十九)原理探究:使用cv2.bitwise()系列函数实现图像按位运算-CSDN博客…

【VUE案例练习】前端vue2+element-ui,后端nodo+express实现‘‘文件上传/删除‘‘功能

近期在做跟毕业设计相关的数据后台管理系统,其中的列表项展示有图片展示,添加/编辑功能有文件上传。 “文件上传/删除”也是我们平时开发会遇到的一个功能,这里分享个人的实现过程,与大家交流谈论~ 一、准备工作 本次案例使用的…

使用真实 Elasticsearch 进行高级集成测试

作者:来自 Elastic Piotr Przybyl 掌握高级 Elasticsearch 集成测试:更快、更智能、更优化。 在上一篇关于集成测试的文章中,我们介绍了如何通过改变数据初始化策略来缩短依赖于真实 Elasticsearch 的集成测试的执行时间。在本期中&#xff0…

【R语言】函数

一、函数格式 如下所示: hello:函数名;function:定义的R对象是函数而不是其它变量;():函数的输入参数,可以为空,也可以包含参数;{}:函数体,如果…

VSCode插件Live Server

简介:插件Live Server能够实现当我们在VSCode编辑器里修改 HTML、CSS 或者 JavaScript 文件时,它都能自动实时地刷新浏览器页面,让我们实时看到代码变化的效果。再也不用手动刷新浏览器了,节省了大量的开发过程耗时! 1…

50. 正点原子官方系统镜像烧写实验

一、Windows下使用OTG烧写系统 1、在Windos使用NXP提供的mfgtool来向开发烧写系统。需要用先将开发板的USB_OTG接口连接到电脑上。 Mfgtool工具是向板子先下载一个Linux系统,然后通过这个系统来完成烧写工作。 切记!使用OTG烧写的时候要先把SD卡拔出来&…

扩散模型(三)

相关阅读: 扩散模型(一) 扩散模型(二) Latent Variable Space 潜在扩散模型(LDM;龙巴赫、布拉特曼等人,2022 年)在潜在空间而非像素空间中运行扩散过程,这…

it基础使用--5---git远程仓库

it基础使用–5—git远程仓库 1. 按顺序看 -git基础使用–1–版本控制的基本概念 -git基础使用–2–gti的基本概念 -git基础使用–3—安装和基本使用 -git基础使用–4—git分支和使用 2. 什么是远程仓库 在第一篇文章中,我们已经讲过了远程仓库,每个本…

Baklib如何改变内容管理平台的未来推动创新与效率提升

内容概要 在信息爆炸的时代,内容管理平台成为了企业和个人不可或缺的工具。它通过高效组织、存储和发布内容,帮助用户有效地管理信息流。随着技术的发展,传统的内容管理平台逐渐暴露出灵活性不足、易用性差等局限性,这促使市场需…

16.[前端开发]Day16-HTML+CSS阶段练习(网易云音乐五)

完整代码 网易云-main-left-rank&#xff08;排行榜&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&q…

ARM嵌入式学习--第十天(UART)

--UART介绍 UART(Universal Asynchonous Receiver and Transmitter)通用异步接收器&#xff0c;是一种通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输和接收。在嵌入式设计中&#xff0c;UART用来与PC进行通信&#xff0c;包括与监控…

Unity游戏(Assault空对地打击)开发(3) 摄像机的控制

详细步骤 打开My Assets或者Package Manager。 选择Unity Registry。 搜索Cinemachine&#xff0c;找到 Cinemachine包&#xff0c;点击 Install按钮进行安装。 关闭窗口&#xff0c;新建一个FreeLook Camera&#xff0c;如下。 接着新建一个对象Pos&#xff0c;拖到Player下面…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)

目录 1 -> 生命周期 1.1 -> 应用生命周期 1.2 -> 页面生命周期 2 -> 资源限定与访问 2.1 -> 资源限定词 2.2 -> 资源限定词的命名要求 2.3 -> 限定词与设备状态的匹配规则 2.4 -> 引用JS模块内resources资源 3 -> 多语言支持 3.1 -> 定…

小程序-基础加强-自定义组件

前言 这次讲自定义组件 1. 准备今天要用到的项目 2. 初步创建并使用自定义组件 这样就成功在home中引入了test组件 在json中引用了这个组件才能用这个组件 现在我们来实现全局引用组件 在app.json这样使用就可以了 3. 自定义组件的样式 发现页面里面的文本和组件里面的文…

尝试ai生成figma设计

当听到用ai 自动生成figma设计时&#xff0c;不免好奇这个是如何实现的。在查阅了不少资料后&#xff0c;有了一些想法。参考了&#xff1a;在figma上使用脚本自动生成色谱 这篇文章提供的主要思路是&#xff1a;可以通过脚本的方式构建figma设计。如果我们使用ai 生成figma脚本…

【周易哲学】生辰八字入门讲解(八)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【周易哲学】生辰八字入门讲解&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 一、六亲女命六亲星六亲宫位相互关系 男命六亲星…

解决whisper 本地运行时GPU 利用率不高的问题

我在windows 环境下本地运行whisper 模型&#xff0c;使用的是nivdia RTX4070 显卡&#xff0c;结果发现GPU 的利用率只有2% 。使用 import torch print(torch.cuda.is_available()) 返回TRUE。表示我的cuda 是可用的。 最后在github 的下列网页上找到了问题 极低的 GPU 利…