一、虚拟机平台选择
一般大多都是用VMware-workstation,网上的教程比较多,因为我之前搭建dnf私服服务器时,相关的服务器资源都是在vmware平台上的,所以vmware遇到问题解决的应该会比较快。但感觉vmware界面不如virtualbox整洁,我就继续使用virualbox了。
bing搜索“virtualbox”,进入官网,下载合适自己平台的virtualbox。
Downloads – Oracle VM VirtualBox
下载好后安装,自己选择虚拟机平台的安装位置。然后一路默认就好了。
虚拟机平台安装虚拟机可以看作是现实中装机的过程一样,虚拟机平台是各种硬件商店,你要在这个平台购买(选择)你要装机的显示器、主板(这个虚拟机平台不用自己选)、内存条、cup、硬盘等等硬件设备。选择完你要的设备后,不用自己装机,虚拟机已经把各个硬件都配置好了,只需要把自己想要装的操作系统安装进去就行了。
二、操作系统iso文件下载
就像平时给电脑装系统一样,自己需要什么操作系统就去下载什么,这里要安装Ubuntu系统,还是直接bing搜索,找到官方网站。
ubuntu一年分为两个版本,4月份的版本比较稳定。下载时可以右键下载复制链接,然后打开迅雷,创建新任务,粘贴链接。迅雷速度还行。
![](https://i-blog.csdnimg.cn/blog_migrate/357f195d400de64f4c9cc16faa95f175.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0b226137ab8bb3f4991b7dfbf5dbdf65.png)
三、安装虚拟机
打开virtualbox,点击欢迎页面的新建——输入名称——选择放置虚拟机文件的文件夹——选择操作系统类型和版本——next。
![](https://i-blog.csdnimg.cn/blog_migrate/6d186bc7dbe334e1b45aed72d8521b10.png)
我的选择是ubuntu系统,所以这样选择。
![](https://i-blog.csdnimg.cn/blog_migrate/8cc072727f37e696de01c31a49ee281b.png)
内存和cpu线程分配尽可能选大一点,只要指标在绿色区域就行。不过安装完成后觉得不够还可以更改。
![](https://i-blog.csdnimg.cn/blog_migrate/ffcd8257fa9e99b3908aee94b79dddc3.png)
接下来先不设置硬盘,直接next。
ps:这里的立刻分配全额空间是指,如果不勾选的话,生成虚拟机后会随着使用时间越来越长,硬盘占用空间会越来越大,直到20g,勾选的话就是一下分配给你20g,直接分配会占用更多内存,但硬盘性能会更好一点。
![](https://i-blog.csdnimg.cn/blog_migrate/9fe7611ded0d9893dd977b498865538a.png)
finish。这就是我们选购的设备清单了,整机已经搭配出来了,虽然里面还没有系统。
![](https://i-blog.csdnimg.cn/blog_migrate/01906cb63260c5aaf707d6fd4be3caaf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/34bada854df842e488a4cfd78366ff5d.png)
工具——介质。
配置硬盘
![](https://i-blog.csdnimg.cn/blog_migrate/709320894b021c9c61f4b4556f317859.png)
选择虚拟硬盘——创建
![](https://i-blog.csdnimg.cn/blog_migrate/d1c6b344fa0d84649524e96f8f1b7461.png)
随便选择一种格式。各种格式的区别见(1条消息) VDI, VHD, VMDK 之间的区别_青花幽默的博客-CSDN博客_vdi vhd vmdk 区别
![](https://i-blog.csdnimg.cn/blog_migrate/b359c19a13988e8e1505cca33705e4bc.png)
固定大小安装
![](https://i-blog.csdnimg.cn/blog_migrate/b79c1ee5ba1145f43cdd88e2dbd0c082.png)
选择硬盘存放位置,我一般放在和使用该硬盘的虚拟机的文件夹下
![](https://i-blog.csdnimg.cn/blog_migrate/f25ba47648072fc04b1f370cefc2cd43.png)
已经创建成功
![](https://i-blog.csdnimg.cn/blog_migrate/acd1e7b7b245da08b300463726f3d462.png)
点击自己的虚拟机——设置——存储
![](https://i-blog.csdnimg.cn/blog_migrate/73d91b3cc8bb48b13c3f07c84964224a.png)
给ide控制器添加光驱,也就是我们下载好的操作系统iso文件。等会启动会从iso启动,没设置的话不开机。
注册——选择自己要安装的那个iso文件——确定
![](https://i-blog.csdnimg.cn/blog_migrate/c1d8dab722ceb8ad83c8b17a45ec5f43.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0f0df6f74d16dba6606d206786128739.png)
给sata控制器添加我们刚才设置好的硬盘,等会会把iso中的系统写进硬盘,没有的话等会会说安装找不到硬盘,又得退出来重新配置。
因为刚才刚刚创建的虚拟硬盘,所以现在可以直接选择。如果有别人给的虚拟硬盘文件在这里找不到,可以注册一下,或者还没有创建的话点击创建。
![](https://i-blog.csdnimg.cn/blog_migrate/f9624012868b0d912d1eba3195ce5cf8.png)
存储这里配置成这样
![](https://i-blog.csdnimg.cn/blog_migrate/bb1552a2b3c546420a8909727874f563.png)
系统,可以看到,这里有启动顺序,也就是说开机的时候,按照软盘——光驱——硬盘的顺序检测里面有没有系统,如果有就引导进入那个盘里的系统,就和平时装系统一样,要选择启动盘优先引导,
![](https://i-blog.csdnimg.cn/blog_migrate/138dcc3a7b208b8b707232ebab4cfdc7.png)
我们刚才下载的操作系统是iso文件,是光驱,所以我们要把光驱放在第一位,而软盘现在没有多少人用了,所以我们把这个启动顺序设置成这样。
![](https://i-blog.csdnimg.cn/blog_migrate/d31d5c4aac4527b8cac76d2dec8ccad5.png)
接下来,直接开机,进入安装程序。
选择第一个,直接回车。
![](https://i-blog.csdnimg.cn/blog_migrate/b3f489b51d6662e8d57ff526a0d3b080.png)
正式进入安装程序
![](https://i-blog.csdnimg.cn/blog_migrate/66af26408039058c7c24f136a9b321e2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8ae4da7aabee0c8c4076215e6055bda.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cef69433a764a521d7febdf73fb49cb9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3332b6057ca40e95454c3d241e44d799.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5e795282cbdee3203c7fee245010f988.png)
![](https://i-blog.csdnimg.cn/blog_migrate/84ec24d7f770c6794d76c6102826fb71.png)
等待
![](https://i-blog.csdnimg.cn/blog_migrate/0b2710f825dacebd874a39650e9f0ce2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/81199762d445f35e8cad8d83c0156e86.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f0512abb56b54ef0c02ae0009e96b18b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b469e622a5dd6a61fe9ebf456d0e7beb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ee35b87aca3b08bd9753c0916f6d1d02.png)
这里最好更新一次,不知道为什么这里不更新后,后面有些软件安装时就遇到麻烦
![](https://i-blog.csdnimg.cn/blog_migrate/6734a19160cd5ac6a23cab03c679b3af.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e9b1cf995e4ac1a1ac000f5546cc94bf.png)
这个之后更换/etc/apt/source.list好像也一样
![](https://i-blog.csdnimg.cn/blog_migrate/36ced3007f276e10a20fa5637c9c5e27.png)
四、安装增强功能
设备——安装增强功能
![](https://i-blog.csdnimg.cn/blog_migrate/94227d9f2fb81e24bc9eef7ac8a5af64.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4c3e06617b312fede4444f7988210f4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/59ee5d22031177005c5fa1f0fb2e4b5c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5e048552dfc67902c14fd6a635a03afd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5cee426f4f810d97ec1530df0bf3c6e2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e6dc81cd2e6fa1f33b6328d9256cfffe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1c08e08a3f585b8b39dcb3cd471bb034.png)
![](https://i-blog.csdnimg.cn/blog_migrate/be974ffae0a2aeda31b8a6001e8b2e9d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/12049ab419245f4dbfe4cf7149dd00b4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0da91dc24b135ab65a9b8ccfac74faaf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bb4a39c672281641816fa3c61ba3fa62.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dc8fe6eee9f83260efcafcebe5ada846.png)
注意
在这里就可以设置一下,给这个虚拟机设置一个快照(备份或是还原点了),弄坏了可以不用重新装了。还有个很重要的地方,要在windows 安全中心关闭内核隔离,不知道为啥,这个内核隔离有时候会让我恢复备份的时候提示某一块内存不可写,导致备份恢复失败
![](https://i-blog.csdnimg.cn/blog_migrate/96da25a7d4cdc85a5fdc7a1e7a0f7f68.png)
五、安装一些基本软件
先调整一下终端的字体大小,终端内右键——preferences——unnamed——text——勾选custom font ——monospace——调整字体大小。
![](https://i-blog.csdnimg.cn/blog_migrate/735fc7ac5e02d3a18451c653ab6ff31f.png)
设置国内镜像源
bing搜索ubuntu源镜像,记住源镜像的版本一定要和Ubuntu的版本一样,不然不知道会出什么错,我的ubuntu是22.04的那么我搜索的时候也是“Ubuntu22.04源镜像”
![](https://i-blog.csdnimg.cn/blog_migrate/e2980b3269108da3e4f07b9523d9b1a2.png)
在ubuntu中打开终端,输入下列命令备份一份源镜像配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources_backup.list
用nano编辑器打开source.list文件
sudo nano /etc/apt/sources.list
按ctrl+shift+6进入选择模式,按方向下键全选,ctrl+k删除,然后把清华的源镜像粘贴进去,把第3、5、7行的#按需求选择是否取消注释。
![](https://i-blog.csdnimg.cn/blog_migrate/69e7d98709be2fcb7b9919b6a77e29db.png)
ctrl+x,y保存退出
退出后输入命令更新源镜像列表,等待
sudo apt-get update
刚才提示更新没更新的最好执行一下下面这条命令升级一下所有软件包,不然neovim安装不上
sudo apt-get upgrade
安装一些常用软件
curl是linux下常用的文件传输工具
openssh-server可以把虚拟机系统设置成一台ssh服务器,这样就可以远程控制虚拟机了
net-tools是管理网络设置的
gcc是C/C++的编译器(在linux里配置C编程环境要比windows下简单,安装了gcc好了,可能有的提示安装什么什么库)
sudo apt-get install curl git openssh-server net-tools gcc
六、安装并配置neovim
安装neovim,作为平时常用的文本编辑器
sudo apt-get install neovim
安装nodejs
因为等会配置coc.nvim要求安装nodejs,所以先安装nodejs
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
如果安装顺利的话,通过node -v和npm -v命令可以查看版本
node -v
npm -v
![](https://i-blog.csdnimg.cn/blog_migrate/d0b59d819563b06e7d2aa5d447b1f7d4.png)
为了后续操作的顺利,我们需要将 NPM 所连接的默认仓库换成在国内的镜像:
$ npm config set registry https://registry.npm.taobao.org
$ npm config get registry
https://registry.npm.taobao.org
![](https://i-blog.csdnimg.cn/blog_migrate/94c8bd098b19040d6d12a66ee980fd20.png)
安装yarn(一步一步输入命令)
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn
检测是否安装成功
sudo yarn --version
安装Python3环境
sudo apt install -y python3 python3-pip
pip install pynvim
修改/etc/hosts文件,方便访问github
使用 IP 查询工具找到该域名对应的 IP 地址,然后将其写入到/etc/hosts文件中(windows系统hosts文件位置是C:\Windows\System32\drivers\etc\hosts)
在这个网站What Is My IP Address? Free IP Lookup查询github.com和raw.githubusercontent.com的dns服务器地址。
![](https://i-blog.csdnimg.cn/blog_migrate/64e31a1915b901b6a6c494d5c88ec983.png)
![](https://i-blog.csdnimg.cn/blog_migrate/af0d6dba5e3c83163c0507e7a9ae9abe.png)
打开hosts文件
sudo nano /etc/hosts
把查询的结果按照这样的格式写入hosts,保存退出
185.199.108.133 raw.githubusercontent.com
140.82.113.4 github.com
![](https://i-blog.csdnimg.cn/blog_migrate/a60a734e09c5350daa7f034ae576b4c9.png)
创建nvim个人用户配置文件
在家目录下的.config文件下创建nvim文件夹,在nvim文件夹下创建init.vim,这个.vim文件就是配置文件了。
mkdir ~/.config/nvim/
nvim ~/.config/nvim/init.vim
在打开的.vim文件里写入set nu就可以让nvim在进行文本编辑时显示行号了,删掉或注释掉就不显示行号。
" 令编辑器显示行号
set nu
输入:wq保存退出,再进入nvim就可以看到配置效果了
vim-plug插件管理器
用vim-plug来管理nvim的插件,命令行输入以下命令安装
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
注:
如果网络不好 curl无法下载这个文件,可以用别的方式来安装,先解读一下这个命令的意义
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs
在家目录的./local/share/nvim/site/autoload文件夹下创建plug.vim文件,没有的话就创建一个。
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
然后将这个里面的内容复制到plug.vim文件里保存就好了。
方式:
mkdir ~/.local/share/nvim/site/autoload
cd ~/.local/share/nvim/site/autoload
nvim plug.vim
然后去github上搜索vim-plug,找到plug.vim,点进去,复制里面两千多行的代码,粘贴到虚拟机里打开的这个plug.vim文件中保存。vim-plug就安装好了。
![](https://i-blog.csdnimg.cn/blog_migrate/b84d50e87e0f0285c81c55d7a80da2d5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/524b4047da82f6b07ec5c1f751ec74c8.png)
配置自己需要的插件方法介绍
vim-plug已经安装好了,现在就在配置文件中去配置我们需要的插件。找到我们刚才创建的配置文件init.vim
cd ~/.config/nvim/
nvim init.vim
在结尾输入以下两行
call plug#begin()
call plug#end()
以后要安装插件的话,在这两行之间插入自己需要的插件就好了。
举个例子:
加入tab键补全功能插件,然后保存init.vim,
call plug#begin()
" tab键补全功能插件
Plug 'ervandew/supertab'
call plug#end()
然后在命令行输入nvim,打开nvim
在nvim界面输入:PlugInstall(要手动输入冒号和后面的内容,如果vim-plug安装成功,那么输入大写P后按tab键,也可以找到PlugInstall,tab没反应就是vim-plug没装好
:PlugInstall
![](https://i-blog.csdnimg.cn/blog_migrate/8b4132d4f7a61ba3ad6562f63c84ca34.png)
输入后回车,会自动下载安装添加的插件。
![](https://i-blog.csdnimg.cn/blog_migrate/d8ad9f5abebe226d810054b7ddc2bdbc.png)
安装成功。
利用vim-plug安装coc.nvim补全插件
进入github.com中搜索coc.nvim。星最多的那个就是
里面介绍了coc.nvim需要依赖nodejs,我们在第2部刚才已经安装过了,不用管。
![](https://i-blog.csdnimg.cn/blog_migrate/9c7bc63b64427d369d79fe452748966c.png)
接着看下面,对于vim-plug用户,把下面的代码复制到init.vim文件中,像刚才我们安装那个插件的格式一样复制就行了。复制结果如下。
Plug 'neoclide/coc.nvim', {'branch': 'release'}
复制完成就是这样
![](https://i-blog.csdnimg.cn/blog_migrate/d2655ae9b921d5c3560c5e69214c6501.png)
保存退出,重新进入nvim,输入:PlugInstall等待安装新添加的插件。
附
有时候添加“Plug 'neoclide/coc.nvim', {'branch': 'release'}”后,然后:PulgInstall总是失败,不知道以下用yarn安装(我们刚才安装nodejs时特意安装了yarn)的方法可不可行。
首先添加以下代码进入init.vim保存退出,然后和以前一样打开nvim,输入:PlugInstall让vimplug帮我们自动安装
Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}
等待过后他应该会提示
build/index.js not found, please install dependencies and compile coc.nvim by: yarn install
我们直接去coc.nvim的下载目录~/.local/share/nvim/plugged。(这个plugged文件夹就是默认你的所有插件会安装在这里,如果要更改位置,就在init.vim的那个call plug#begin()的这个括号里添加你要设定的插件存放位置,空着就是默认这个文件夹。)
这里我们通过1命令进入plugged文件夹下下载的coc.nvim文件夹中,依次执行2、3命令。
cd ~/.local/share/nvim/plugged/coc.nvim
yarn install
yarn build
等待完成后输入nvim打开nvim,输入:CocInfo查看coc.nvim是否安装成功。
:CocInfo
出现以下命令则安装成功
![](https://i-blog.csdnimg.cn/blog_migrate/d6ddd431deca747f51f0ab9f92a3b25f.png)
coc.nvim配置
没有配置的coc.nvim不是很好用,但我也不会配置,所以就直接复制的coc.nvim官网下面的example到init.vim文件的结尾凑活使用了。
![](https://i-blog.csdnimg.cn/blog_migrate/40e4bbab3d9d7314ffeeda50b46bbf9a.png)
在coc.nvim下安装language server
Coc 本身并不提供具体语言的补全功能,所以在安装完成后,我们需要安装具体的language server以支持对应的补全功能。
点击coc.nvim的github主页的wiki,找到language server
![](https://i-blog.csdnimg.cn/blog_migrate/b6ffb7af2dc253a50ceab2474e084649.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2e87d3e823380d2e66d5705a6b061dc.png)
可以看到不同的变成语言有不同的语言服务,选择自己使用的语言,例如C/C++
![](https://i-blog.csdnimg.cn/blog_migrate/1bbcf688553ee46a0670cb8974b9f2a2.png)
可以看到常用的C/C++ 的language server有ccls和clangd,因为ccls在home目录下使用nvim会有个莫名其妙的报错,其他位置则没有,不知道什么原因,询问作者后,作者让我换clangd试试。这里我们就安装clangd。
![](https://i-blog.csdnimg.cn/blog_migrate/e26210f17083c594335e932f1121f709.png)
命令行输入以下命令安装clangd,遇到要确认的地方直接输入y回车
sudo apt-get install clangd
安装完成后命令行输入nvim回车
在nvim中输入:CocConfig回车(nvim中的命令一定要注意大小写)
:CocConfig
会提示让你在nvim中运行“:CocInstall coc-json”命令,输入后回车等待
![](https://i-blog.csdnimg.cn/blog_migrate/6f7e66d5610521a146c77145199923a8.png)
:CocInstall coc-json
等待安装完成coc-json后,重新输入:CocConfig回车,然后回到我们刚才的github界面把以下代码复制粘贴进coc-json中,然后在最开始和最后加上大括号。(我这里没加)
"languageserver": {
"clangd": {
"command": "clangd",
"rootPatterns": ["compile_flags.txt", "compile_commands.json"],
"filetypes": ["c", "cc", "cpp", "c++", "objc", "objcpp"]
}
}
:wq保存退出,我们的语言服务就安装好了。
再进入用nvim打开一个.c文件就可以补全了
![](https://i-blog.csdnimg.cn/blog_migrate/d7272ac8fbf8057d8c994917dff7947a.png)
写到一半按esc退出插入模式还能检测语法错误。
![](https://i-blog.csdnimg.cn/blog_migrate/12dedfe70b7959a0a3a34debc5ba53ba.png)
其他插件
因为 不是很懂插件,所以我的插件都是从大佬那里抄来的,可以按需求自己去找相关插件
![](https://i-blog.csdnimg.cn/blog_migrate/54111ad9cdaba45197fcf466bc4cb6fa.png)
参考资料
junegunn/vim-plug: Minimalist Vim Plugin Manager (github.com)
保姆级|Windows下Ubuntu开发环境指南|附赠一键安装脚本|手把手包教包会_哔哩哔哩_bilibili
Tmux 使用教程(转载学习)_Lininggggggg的博客-CSDN博客
https://www.bilibili.com/video/BV1GE411P7dy/?spm_id_from=333.337.search-card.all.click