关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

从源代码编译 Vim 8.0

guanshanw 2023-08-20 13:43 57 浏览 0 评论

从源代码编译 Vim 实际上并不那么困难。

-- Val Markovic

编译自: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
作者: Val Markovic
译者: zky001

从源代码编译 Vim 实际上并不那么困难。下面是你所要做的:

1、首先,安装包括 Git 在内的所有必备的库。对于一个 Debian 类的 Linux 发行版,例如 Ubuntu,命令如下:

  1. sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \

  2. libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \

  3. libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \

  4. python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev git

在 Ubuntu 16.04 上,lua 开发包的名称是 liblua5.1-dev而非lua5.1-dev

如果你知道你将使用哪种语言,可随意删去你不需要的包。例如:Python2 python-dev或者是 Rubyruby-dev。这一原则适用于本文的大部分内容。

对于 Fedora 20,将是以下命令:

  1. sudo yum install -y ruby ruby-devel lua lua-devel luajit \

  2. luajit-devel ctags git python python-devel \

  3. python3 python3-devel tcl-devel \

  4. perl perl-devel perl-ExtUtils-ParseXS \

  5. perl-ExtUtils-XSpp perl-ExtUtils-CBuilder \

  6. perl-ExtUtils-Embed

在 Fedora 20 上需要这一步来纠正安装 XSubPP 时出现的问题:

  1. ### 从 /usr/bin 到 perl 目录做个 xsubpp (perl) 的符号链接

  2. sudo ln -s /usr/bin/xsubpp /usr/share/perl5/ExtUtils/xsubpp

2、 如果你已经安装了 vim,删掉它。

  1. sudo apt-get remove vim vim-runtime gvim

如果是 Ubuntu 12.04.2,你或许也需要同时删除下面这些软件包:

  1. sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox

3、 一旦上述内容都被安装好之后,获取 vim 源代码很容易。

注意:如果你使用 python,你的配置目录或许有一个特定的机器名 (例如 config-3.5m-x86_64-linux-gnu)。检查/usr/lib/python[2/3/3.5]目录来找到你的 python 配置目录,据此更改python-config-dir和/或python3-config-dir的参数。

添加/删除下面的编译参数以适合您的设置。例如,如果您不打算写任何 Lua 脚本,您可以删去 enable-luainterp

同时,如果你使用的不是 vim 8.0,请确认下面 VIMRUNTIMEDIR参数设置正确(例如,如果使用 vim 8.0a, 就用/usr/share/vim/vim80a)。记住,一些 vim 安装是直接安装在/usr/share/vim下的;调整好参数以适应你的系统:

  1. cd ~

  2. git clone https://github.com/vim/vim.git

  3. cd vim

  4. ./configure --with-features=huge \

  5. --enable-multibyte \

  6. --enable-rubyinterp=yes \

  7. --enable-pythoninterp=yes \

  8. --with-python-config-dir=/usr/lib/python2.7/config \

  9. --enable-python3interp=yes \

  10. --with-python3-config-dir=/usr/lib/python3.5/config \

  11. --enable-perlinterp=yes \

  12. --enable-luainterp=yes \

  13. --enable-gui=gtk2 --enable-cscope --prefix=/usr

  14. make VIMRUNTIMEDIR=/usr/share/vim/vim80

在 Ubuntu 16.04 上,由于同时开启了 Python2 和 Python3,Python 支持将不工作。 阅读 chirinosky 的回答[1] 以获取变通的处理方法。

如果你想将来轻松卸载 vim,可以使用 checkinstall来安装 。

  1. sudo apt-get install checkinstall

  2. cd ~/vim

  3. sudo checkinstall

否则,可以使用 make来安装。

  1. cd ~/vim

  2. sudo make install

要让 vim 成为你默认的编辑器,请使用 update-alternatives

  1. sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1

  2. sudo update-alternatives --set editor /usr/bin/vim

  3. sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1

  4. sudo update-alternatives --set vi /usr/bin/vim

4、 再检查下,通过查看 vim --version输出来确认确实在运行新的 Vim 应用程序版本。

如果你的 gvim 不工作(在 ubuntu 12.04.1 LTS 上),试着把 --enable-gui=gtk2参数变为--enable-gui=gnome2

如果你遇到问题,仔细检查在步骤 3 开始提到的,使用正确的 Python 配置目录配置 configure

这些 configuremake命令假设你是一个 Debian 发行版,Vim 的运行库文件目录放在/usr/share/vim/vim80/,这不是 vim 的默认路径。 在configure命令中的--prefix=/usr也是如此。这些参数或许对一个不是基于 Debian 的 Linux 发行版来说是有所不同的,在这种情况下,试着移除configure命令中的--prefix变量和make命令中的VIMRUNTIMEDIR(换句话说,使用这些参数的默认值)。

如果你遇到麻烦, 这里是一些其它编译 Vim 的有用的信息[2]。

作者:Val Markovic等人 译者:zky001校对:jasminepeng

本文由 LCTT[3] 原创编译,Linux中国荣誉推出

推荐文章

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: