在上一篇 《vim入门实战》 篇,我并没有介绍 Linux 平台源码包形式安装以及基础运用。

本篇教程,以源码包形式部署vim 9.0,演示 Rocky Linux 9 平台安装 vim 9.0.1523,目前最新版为vim 9.0.15xx

如下演示均以 root 身份进行。为了安全考虑,默认禁用root 用户远程ssh登录权限,以普通用户作为跳板切换为 root 用户。

vim 9.0 部署准备环境

借助终端管理工具,通过 ssh 登录到终端管理界面(普通用户):

PS D:\work> ssh wzgy@192.168.245.133
wzgy@192.168.245.133's password:

切换为 root 用户:

su root

获取 vim 9.0 源码包:

wget https://github.com/vim/vim/archive/refs/tags/v9.0.1523.tar.gz

如果没有安装 wget 工具,Rocky Linux 9 可以执行如下命令进行安装:

dnf -y install wget

安装前,确认环境,是否安装 make gcc cmake:

[root@localhost soft]# dnf -y install make gcc cmake

根据实际情况而定,可能有的源码包设定需要 cmake 编译。

减少干扰,卸载 Rocky Linux 9 自带的 vim8:

[root@localhost soft]# dnf remove vim

友情提示:实际工作中,你的硬件(CPU、内存、硬盘)不是无限大。以二进制包、源码包、rpm、deb包等等形式安装软件,保留其中一种即可。减少服务器资源争抢,便于管理维护。

vim 9.0 源码包正式部署

正式部署vim9,首先解压 vim:

[root@localhost soft]# tar -zxvf v9.0.1523.tar.gz

进入 src 目录:

[root@localhost soft]# cd vim-9.0.1523/src/

编译:

[root@localhost src]# make

注意事项:看到提示别慌,仔细发现提醒需要 ncurses 依赖。

checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
On Linux that would be the libncurses-dev package.
Or specify the name of the library with --with-tlib.
Makefile:291: auto/config.mk: 没有那个文件或目录
make: *** [Makefile:1972:auto/config.mk] 错误 1

在 Rocky Linux 9.1 (RHEL9 系列应该均适用)中可以执行:

dnf -y install ncurses

如果提示:

软件包 ncurses-6.2-8.20210508.el9.x86_64 已安装。

依赖关系解决。

无需任何处理。

完毕!

再次执行 dnf -y install ncurses-devel-6.2-8.20210508.el9:

dnf -y install ncurses-devel-6.2-8.20210508.el9

会继续安装如下两个库文件:

ncurses-c++-libs-6.2-8.20210508.el9.x86_64.rpm

ncurses-devel-6.2-8.20210508.el9.x86_64.rpm

可能你会有疑问,实际过程中,如何判断安装包是哪一个 Linux 具体发行版本?其实可以根据安装包命名规则区分,可以看到以上安装包中都含有 el9 ,代表所处 Linux 发行版平台为 RHEL9 系列。

继续编译:

[root@localhost src]# make

安装:

make install

如果直接执行 vim:

vim

输出结果:会进入一个含有vim 当前版本以及维护人的信息。当然还含有公益广告,开源软件可以自行选择删除或者保留。

vim 9.0 初体验

执行 vim file.txt 进行编辑,输入一段内容 hello vim 9.0.153:

vim test.txt

按下快捷键:i ,插入如下内容:

*
**
***
*****
*******
*************************
采用源码包形式编译安装!
hello vim 9.0.1523
*************************
*******
*****
***
**
*

test.txt 代表你需要编辑的文件。

使用快捷键: a i o 即可插入内容,使用 :wq 进行保存并退出当前文件。

终端展示输出文件 test.txt 内容:

cat test.txt

如果你有足够的英语词汇量,使用 vim 自带帮助命令效率会很高。

继续编辑 test.txt 文件:

vim test.txt

示例使用 vim 帮助命令,含义直接写入代码块注释中:

:help  		#查看全局帮助命令文档
:help vs #查看局部水平分屏命令文档
:help sp #查看局部垂直分屏命令文档

关闭所有窗口,强制(加上!符号)不保存退出,使用快捷键: :qa!,保存退出所有窗口: :wqa 。

更多 vim 快捷键使用方法,可以在公众号或者站内搜索:vim入门实战。

默认安装后相关配置文件路径:

[root@localhost src]# ls /usr/local/share/
applications info man vim

默认 vim 脚本文件路径:

ls  /usr/local/bin/vim

vim 脚本会去寻找defaults.vim,默认所在路径:/usr/local/share/vim/vim90/defaults.vim,也就是源码包经过编译、安装后生成的文件。

plug-vim 安装插件

Rocky 9 Linux 平台如下操作

wget https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
--directory-prefix=/usr/local/share/vim/vim90/autoload/

下载文件,如何指定保存路径?通过帮助文档查询:

[root@localhost ~]# wget --help | grep "保存文件"
-P, --directory-prefix=前缀 保存文件到 <前缀>/..

如果没有 wget 工具,请先安装:

dnf -y install wget

安装 vim-plug 插件后,加入如下内容即可安装 nerdtree 和 tagbar 插件:

set number
call plug#begin()
Plug 'preservim/nerdtree'
Plug 'preservim/tagbar'
call plug#end()

个人认为,这两个插件还是很实用的,尤其是浏览代码。

如果想 tagbar 正常运行,还需安装:

dnf -y install ctags

执行插件安装命令:

:PlugInstall

插件安装后,重启vim即可生效。

安装插件效果展示,最左侧是nerdtree效果,最右侧是tagbar效果。

示例:

vim Test.java
:NERDTree
:Tagbar

以上总结,仅供参考哟,希望对你的工作有所帮助!

—END—

Rocky 9 Linux 平台 vim 9.0 源码包编译安装踩坑记录的更多相关文章

  1. CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作

    CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614   使用yum安装的MySQL一般版本比较旧,但 ...

  2. MySQL源码包编译安装

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库实力部署时间:2019年3月9日内容:MySQL源码包进行编译,然后部署MySQL单实例重点 ...

  3. CentOS 7.4 使用源码包编译安装MySQL 5.7.20

    使用yum安装的MySQL一般版本比较旧,但是运行稳定.如果想要尝试最新的功能或者需要指定特殊的功能的话,就需要手工进行编译安装了. 一.下载安装包 (一).先下载MySQL源码,网址为:https: ...

  4. LAMP 环境搭建之源码包编译安装

    mysql用的二进制包安装. Apache php 用的源码包 mysql版本5.5.46    Apache版本2.4.7  PHP版本:5.5 mysql安装部分参考了阿铭linux的内容. 这是 ...

  5. MYSQL5.5源码包编译安装

    MYSQL5.5源码安装首先安装必要的库yum -y install gcc*###### 安装 MYSQL ######首先安装camke 一.支持YUM,则yum install -y cmake ...

  6. MYSQL5.7源码包编译安装

    Centos下用cmake编译安装MySQL 5.7安装依赖包yum -y install gcc gcc-c++ ncurses ncurses-devel cmake下载相应源码包cd /usr/ ...

  7. PHP-5.6.8 源码包编译安装

    一.下载源码包后,进行解压 [root@www home]# .tar.bz2 gzip: stdin: not in gzip format tar: Error is not recoverabl ...

  8. Debian 7 amd64--TP-LINK TL-WN725N 2.0源码驱动编译安装

    租房用的是无线网络,在新安装的Debian 7 amd64使用的无线网卡型号是TP-LINK TL-WN725N 2.0,发现驱动安装还是有些问题,折腾了很久,特意在此记录一下. TL-WN725N ...

  9. MYSQL5.6源码包编译安装

    linux下用cmake编译安装mysql-5.6.35cmake编译安装mysql的方法:#useradd -M mysql -s /sbin/nologin#yum install -y cmak ...

  10. tomcat7源码包编译安装

    tomcat/:作用解析jsp程序.先安装jdk容器.1.下载jdk, wget http://download.oracle.com/otn- pub/java/jdk/8u131- b11/d54 ...

随机推荐

  1. windows下创建虚拟环境

    创建虚拟环境依赖以下两个模块 virtualenv  和virtualenvwrapper-win 1.下载 2.修改环境变量,增加一条 WORKON_HOME:路径 3.  同步配置 去向Pytho ...

  2. 取出预训练模型中间层的输出(pytorch)

    1 遍历子模块直接提取 对于简单的模型,可以采用直接遍历子模块的方法,取出相应name模块的输出,不对模型做任何改动.该方法的缺点在于,只能得到其子模块的输出,而对于使用nn.Sequensial() ...

  3. 一文快速回顾 Java 操作数据库的方式-JDBC

    前言 数据库的重要性不言而喻,不管是什么系统,什么应用软件,也不管它们是 Windows 上的应用程序,还是 Web 应用程序,存储(持久化)和查询(检索)数据都是核心的功能. 大家学习数据库时,比如 ...

  4. Jetson Xavier NX 试玩 (二)

    Jetson Xavier NX 试玩 (二) Hello AI World Inference 人工智能推理模型 0 前言 想玩一玩 jetson 的人工智能功能,官方的 instructional ...

  5. 【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看

    highlight: a11y-dark 简介 前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用.但由于原来OpenAI 并没有支持官网的chatgpt模型, ...

  6. Hugging News #0317: ChatGLM 会成为 HF 趋势榜的第一名吗?

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  7. Spring框架中都用到了哪些设计模式 ?

    1.简单工厂模式 简单工厂模式的本质就是一个工厂类根据传入的参数,动态的决定实例化哪个类.Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得 bean 对 ...

  8. smart rtmpd web 接口说明

    ​ smart rtmpd web 接口分为下面几类 分类名称 功能描述 live 这个就是平常我们的直播播放接口 rec   这个就是平常我们的录像回放接口 vod   这个就是我们点播接口,支持字 ...

  9. LinkedBlockingQueue出入队实现原理

    类图概述 由类图可以看出,L是单向链表实现的,有两个ReentrantLock实例用来控制元素入队和出队的原子性,takeLock用来控制只有一个线程可以从队头获取元素,putLock控制只有一个线程 ...

  10. 【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系

    并发编程的难题和挑战 在并发编程的技术领域中,对于我们而言的难题主要有两个: 多线程之间如何进行通信和线程之间如何同步,通信是指线程之间以何种机制来交换信息. 多线程的线程通信机制 在命令式编程中,线 ...