如何基于neovim老旧Linux系统为现代C开发环境?
摘要:一台 CentOS7 老机器,能不能打造基于 vim 的现代化 IDE?本文以实操为主,带你一步步搭建自己的环境
问题背景
公司配发的电脑是 macOS,日常开发需要访问 Linux 虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的 VSCode 都用不了。因此考虑基于 vim 搭建一套个人开发环境,需要支持以下特性:
语法高亮 (风格可切换)
自动格式化
函数或变量定义跳转
函数或变量引用跳转
成员函数或变量下拉列表提示
函数或变量 TAB 键自动补齐
快速查找
……
考察了多种方案后,决定基于目前比较流行的 neovim 来打造,不过它面向的是比较新的 Linux 发行版,不知道我这个老的 CentOS7 能不能带起来,本文就是一个探索过程。
系统环境
开始之前,先罗列下老旧系统的配置:
硬件
CPU: 2.40GHz * 2 核
内存: 16G
存储: 40G + 100G
软件
系统:CentOS Linux release 7.9.2009 (Core)
kernel:3.10.0-1160.21.1.el7.x86_64
rpm:4.11.3
gcc:4.8.5 (备选 8.2)
glibc:2.17
make:GNU make 3.82
openssl:1.0.2k
git:1.8
wget:1.14
python: 3.6.8
确实是老旧,都是公司成本控制的泪~
软件安装
整个搭建过程是比较坎坷的,常常是装了 Z 之后才发现它依赖 X、Y,去安装 X、Y 的时候又发现一坨问题……这里为了直接上手,改为正叙模式,按这个方式一步步安装、升级,应该是没问题的。如果你的系统上已经存在依赖的软件且版本一致或更新,可以忽略对应安装过程。
在 Linux 上安装软件,一般有源码安装和包管理器安装两种方式,后者在 CentOS 上就是 yum 了,然而软件源提供的软件一般版本较低,有时需要使用前者,这就比较依赖 wget、git、gcc 和 make 了,这也是在上一节中列出他们版本的原因,在开始安装各种软件之前,需要首先升级他们。
基础软件升级
gcc
系统提供的 4.8.5 编译基本是够用的,后面代码格式化需要用到的 clang-format 模块如果是源码方式安装,要求 gcc 至少是 5.1,如果你有 5.1 及以上的 gcc 那更好。没有也没关系,本文会用其它方式绕过,毕竟升级 gcc 是一项大工程,没有半天是搞不定的,太耽误功夫。
虽然不必升级 gcc,但是一些代码库使用的高版本 gcc 默认了 -std=c99 选项,这点对老版本非常不友好,为此需要特意告诉老 gcc 编译器这个选项。
