Linux系列讲解 —— 【Vim编辑器】在Ubuntu18.04中安装新版Vim

平时用的电脑系统是Ubuntu18.04,使用apt安装VIM的默认版本是8.0。如果想要安装新版的Vim编辑器,只能下载Vim源码后进行编译安装。

目录

  • [1. 下载Vim源码](#1. 下载Vim源码)
  • [2. 编译](#2. 编译)
  • [3. 安装](#3. 安装)
  • [4. 遇到的问题](#4. 遇到的问题)
    • [4.1 打开vim后,文本开头有乱码现象。](#4.1 打开vim后,文本开头有乱码现象。)
    • [4.2 在Vim编辑器中,退格键失效。](#4.2 在Vim编辑器中,退格键失效。)

1. 下载Vim源码

shell 复制代码
git clone https://github.com/vim/vim.git

2. 编译

(1) 在vim源码路径下,执行configure程序。

shell 复制代码
sudo ./configure --with-features=huge --enable-multibyte --enable-rubyinterp --enable-pythoninterp --enable-python3interp --enable-luainterp --enable-cscope --enable-gui=gtk3 --enable-perlinterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ --prefix=/usr/local/src/vim

参数解释:

参数 解释
--with-features=huge 支持最大特性
--enable-multibyte 打开多字节支持,可以在 Vim 中输入中文
--enable-rubyinterp 打开对 ruby 编写的插件的支持
--enable-pythoninterp 打开对 python 编写的插件的支持
--enable-python3interp 打开对 python3 编写的插件的支持
--enable-luainterp 打开对 lua 编写的插件的支持
--enable-cscope 打开对cscope的支持
--enable-gui=gtk3 表示生成采用 GNOME3 风格的 gvim
--enable-perlinterp 打开对 perl 编写的插件的支持
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ 指定 python 路径
--with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ 指定 python3路径
--prefix=/usr/local/src/vim 指定将要安装到的路径

(2) 进入src目录,执行命令。

shell 复制代码
sudo make

3. 安装

(1) 在vim/src目录中,执行下面命令进行安装。

shell 复制代码
sudo make install

(2) 在系统路径中(如:/usr/local/bin)创建软连接,指向/usr/local/src/vim/bin/vim,这样就可以在任何路径下使用vim了。

shell 复制代码
ln -s /usr/local/src/vim/bin/vim

4. 遇到的问题

4.1 打开vim后,文本开头有乱码现象。

分析过程:

开始以为是Vim的编码问题,在.vimrc中指定编码格式后发现没用。后来在github上找到解决方法(https://github.com/vim/vim/issues/12561)。

解决方法:

编辑~/.bashrc文件,添加下面语句。

shell 复制代码
export TERM=gnome-256color

4.2 在Vim编辑器中,退格键失效。

解决方法:

编辑~/.vimrc文件,添加下面语句。

shell 复制代码
set bs=indent,eol,start  "在插入模式中,对所有内容进行退格。
相关推荐
Archy_Wang_12 小时前
LVS+KeepAlived+Nginx实现企业级业务高可靠部署的实战教程
运维·nginx·lvs
张文君4 小时前
docker使用代理拉取镜像
运维·docker·容器
ltl4 小时前
纠删码原理与存储效率
linux
ltl5 小时前
MinIO 原理和架构:机制、AGPL 与上游 archived 风险
linux
陌路205 小时前
Docker教程从入门到精通(0基础)
运维·docker·容器
林浩杨_5 小时前
linux搜索命令(grep+sed)
linux·命令模式
W.W.H.5 小时前
将驱动编译成模块并安装到rootfs
linux·物联网·wifi·rootfs·驱动
ltl5 小时前
io_uring 在生产环境翻车实录:内核 bug、资源泄漏和你不知道的限制
linux
ltl5 小时前
内存分配器擂台:jemalloc vs tcmalloc vs mimalloc vs glibc
linux
ltl5 小时前
Zero Copy 的肮脏秘密:在什么时候反而更慢
linux