How to build vim

1. Build步骤

git clone --depth   https://github.com/vim/vim.git  # download the source code
cd vim/src
make distclean # clean workspace if you build vim before
./configure --enable-pythoninterp --enable-rubyinterp --enable-python3interp \
--enable-perlinterp --enable-luainterp --with-compiledby --enable-tclinterp # can be ommited if do not used these features
make
sudo make install # install the build bin to system file path

注意
1) Build 之前可以先把旧版本的vim卸掉
sudo apt-get remove vim-common vim-gnome vim-runtime vim-tiny vim-gtk
2) 安装Build vim需要的依赖 (未确认不安装是否可以)
sudo apt-get build-dep vim (若有依赖问题用aptitude来解决)
3) 若提示需要安装ncurses,执行命令即可:sudo apt-get install libncurses-dev
4) 若需要安装到不同的目录(默认是/usr/local/bin),configure是加上参数 --prefix=/somewhere/else/than/usr/local

2. 如何确认Build成功呢:

1) 打开vim,界面显示 version 7.4.2161 (最新的版本号)
2) vim --version 检测版本号以及compile时间
    VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug  6 2016 16:04:21)
    ...
3) :version  同样检测版本号以及compile时间

version 7.4. (before)
version 7.4. (now)
version 7.4. (macvim)

最新版本不稳定,gvim会出现光标停留的问题,经测试,7.4.1655版本可以用。

3. 怎么制作deb安装包呢?

./configure        # 按上面的做法加上必要的参数
make # Build
sudo checkinstall -D
make install # create a deb and install to system (Updated)

它会在当前目录下生成一个*.deb的文件,然后也默认安装到系统中去了。copy到别的电脑,sudo dpkg -i *.deb就能安装vim了。

4. 一些感想
很开心,一直困扰我的gvim选择时丢掉最后一个字符的bug终于不存在了,还有,我终于学会怎么从源码Build vim了,这就意味着我可以随时保证我的vim是最新版本的,一旦有什么bug修复,我都能及时更新我的vim!

Refer to:
1. https://csdaixie.site/2017/build-pack-vim/

从源码Build vim以及打包.deb的更多相关文章

  1. vue打包时,assets目录 和static目录下文件的处理区别(nodeModule中插件源码修改后,打包后的文件应放在static目录)

    为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-loader 解析,并查找资源URL.例如 ...

  2. 从源码构建Vim

    从源码构建Vim 引言 事情是介样滴,因为我是个Vim 重度使用者了差不多.. 但在大部分系统上能安装到的或者自带的都是比较老的版本,可能是7.x 之类的.也或者是你需要使用到Vim 的某些特性或者功 ...

  3. 创作gtk源码级vim帮助文档 tags

    创作gtk源码级vim帮助文档 tags 缘由 那只有看到源码了.在linux源码上有个网站 http://lxr.linux.no /+trees, 可以很方面的查出相应版本的代码实现,gtk没有. ...

  4. 内核源码阅读vim+cscope+ctags+taglist

    杜斌博客:http://blog.db89.org/kernel-source-read-vim-cscope-ctags-taglist/ 武特博客:http://edsionte.com/tech ...

  5. neo4j源码分析1-编译打包启动

    date: 2018-03-22 title: "neo4j源码分析1-编译打包启动" author: "邓子明" tags: - 源码 - neo4j - 大 ...

  6. 庖丁解牛-----Live555源码彻底解密(RTP打包)

    本文主要讲解live555的服务端RTP打包流程,根据MediaServer讲解RTP的打包流程,所以大家看这篇文章时,先看看下面这个链接的内容; 庖丁解牛-----Live555源码彻底解密(根据M ...

  7. 源码编译vim

    目录 获取最新版 vim 源码 1 git仓库clone 2, 源码包下载,里面有各个版本的vim压缩包 vim 配置选项 配置示例 参考文章 tip 获取最新版 vim 源码 1 git仓库clon ...

  8. Android : 修改内核源码 and 编译、打包成新的boot.img

    一.Android内核源码的下载: 1.Google GIT地址: $ git clone https://android.googlesource.com/kernel/common.git $ g ...

  9. 记一次UE4源码编译和游戏项目打包过程

    1.首先我们需要注册一个Epic账户,网址如下 http://api.unrealengine.com/CHN/GettingStarted/Installation/index.html#bookm ...

随机推荐

  1. 【值得收藏】Mathematica数值计算工具的学习资料汇编【可免费下载】

    Mathematica学习教程 Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.Mathematica与Matlab ...

  2. springmvc的一些记录

    1.springmvc基本配置 2.springmvc+hibernate4配置 3.springmvc+hibernate4+freemarker配置 4.springmvc+hibernate4+ ...

  3. let和const关键词

    ECMAScript 6中的let和const关键词 2013-11-28 21:46 by BarretLee, 21 阅读, 0 评论, 收藏, 编辑 ECMAScript 6中多了两个定义变量的 ...

  4. java中的log

    slf4j slf4j的全称是:  Simple Logging Facade for Java (SLF4J). slf4j的官方网站:http://www.slf4j.org 简介 SLF4J不是 ...

  5. python中staticmethod classmethod及普通函数的区别

    staticmethod 基本上和一个全局函数差不多,只不过可以通过类或类的实例对象 (python里光说对象总是容易产生混淆, 因为什么都是对象,包括类,而实际上 类实例对象才是对应静态语言中所谓对 ...

  6. 顺手的Linux发行版及其工具推荐

    从Windows切换到Linux已经有半年多的时间了,简单给大家推荐一些个人感觉不错的软件,主要都是和开发相关的通用软件--- 0.archlinux  挑一个比较顺手的linux发行版当然是首要任务 ...

  7. (Java 多线程系列)Java 线程池(Executor)

    线程池简介 线程池是指管理同一组同构工作线程的资源池,线程池是与工作队列(Work Queue)密切相关的,其中在工作队列中保存了所有等待执行的任务.工作线程(Worker Thread)的任务很简单 ...

  8. MySQL(root用户)密码重置

    分别在Windows下和Linux下重置了MYSQL的root的密码:  在windows下: 1:进入cmd,停止mysql服务:Net stop mysql    到mysql的安装路径启动mys ...

  9. offsetHeight在OnLoad中为0的现象

    在使用IE中,特别在目前div+css的方式,往往不定义div的高度,这是在添加div内容后,需要获取div的高度时,往往需要用到offsetHeight. 在使用中,有时会碰到offsetHeigh ...

  10. OpenGL屏幕二维坐标转化成三维模型坐标

    我们把OpenGL里模型的三维坐标往二维坐标的转化称为投影,则屏幕上的二维坐标往三维坐标转化则可以称为反投影,下面我们来介绍一下反投影的方法. 主要是gluUnProject函数的使用,下面是代码: ...