自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题
来源:互联网 发布:斯皮尔伯格 人工智能 编辑:程序博客网 时间:2024/04/30 06:53
自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题
原文:http://www.ch-linghu.me/blog/entry/324
2012年05月08日 22:51
对于我这样的vim党来说,Ubuntu 12.04有一个非常讨厌的问题,就是在terminal里执行gvim命令的时候会挂起。使得gvim根本无法正常使用。据猛禽说这个问题已经持续了几个版本了,不知道为什么到今天都得不到解决。
在ubuntu的bug track上给出了一个workround , 就是用gvim -f 代替 gvim。当然,我表示这种使用方法非常的不爽。
今天猛禽也遇到类似的问题了,我就想干脆找找看有没有彻底解决问题的方法。幸运的是,还真有。
这个帖子就对这个问题提出了讨论。然后有人给出了一个patch,据说能解决这个问题。
虽然很不想在Ubuntu下自己编译软件,不过抱着试试看的态度,我加上了那个patch之后编译了一下,还真是成功了。
在这里把编译步骤记录一下。
首先安装vim的编译依赖:
sudo apt-get build-dep vim
然后去获取vim的源码:
hg clone https://vim.googlecode.com/hg/ vim
当然了,上面那一步需要事先安装mercurial,这个很简单,就不说了。
然后把上面那个patch抓到vim目录(就是项目的根目录)里来。
cd vimwget https://raw.github.com/gist/2576464/dcbc773312b1488f00eb8b8cb24dd74983349d89/fix-gui-gtk-fork-issue.diff
我个人觉得不是用于开发目的的话,直接编译主线代码不太好。所以先切换到某一个tag做编译比较好。一般当然是用最新的那个tag。
先用
hg tags | head
查询一下当前tags,比如我这里最新的是 v7-3-515
再用
hg update v7-3-515
切换到指定的tag。
然后开始打补丁:
patch src/gui.c fix-gui-gtk-fork-issue.diff
打完补丁之后当然应该去确认一下代码,看看补丁代码是不是已经在了,更简单的方法是直接用 hg diff 确认。这个也不细说了。
假设补丁已经正确打上。那接下来就是很熟悉的编译步骤了。不过这里要注意的是,默认的编译选项好像不行,至少要加上 --with-features=huge 才能使补丁生效。这个部分我没有深究,有兴趣的可以看看为什么。
我用的编译选项是:
./configure --enable-pythoninterp \ --enable-cscope \ --enable-multibyte \ --with-features=huge \ --with-compiledby=ch.linghu@gmail.com
configure完成之后就是 make 和 make install,这个没什么好说了的吧?
安装完成之后的程序在 /usr/local/bin 里,正常情况下会优先使用。可以用 gvim --version 确定一下(看版本号和编译者以及编译时间)。
编译安装完成之后,再执行gvim,应该是没有问题了。(至少我这里已经正常了)
Update:
这样编译出来的vim无法读取Ubuntu系统原有的系统配置,需要做一个软链接:
ls -n /usr/share/vim /usr/local/share/vim
这样编译版的vim表现才会和原来的完全一致。
- 自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题
- Ubuntu下编译vim/gvim
- Ubuntu 16.04 编译Gvim/vim
- ubuntu 12.04安装gvim问题及解决
- Ubuntu下编译安装vim/gvim 8.0
- 解决vim和gvim颜色方案不一致的问题
- 将vim打造成IDE编译环境——自己用的vim(gvim)插件
- 终于解决了ubuntu下gnome-terminal中使用vim时在Insert模式下功能键键映射的问题
- Ubuntu下编译安装稳定版gvim vim 7.3 解决菜单乱码
- 部分电脑安装升级 ubuntu 12.04 后无法挂起问题的解决(挂起无法唤醒同样有效)
- 部分电脑安装升级 ubuntu 12.04 后无法挂起问题的解决(挂起无法唤醒同样有效)
- 解决ubuntu unity下gvim菜单消失的问题
- ubuntu菜鸟解决Gvim的字体设置问题全过程
- Ubuntu 终端Terminal 个性化与相关问题的解决
- 在老ubuntu下编译VIM心得:gvim编译…
- 解决ubuntu下gvim中文乱码问题
- ubuntu下,解决gvim中文乱码问题
- ubuntu下安装vim出现no terminal library found的解决
- Ubuntu下用apt-get 与aptitude管理软件包(全)
- shell学习笔记
- Linux Shell编程基础(全)
- Linux Shell编程实例
- Ubuntu Linux系统下Apt-get命令参数详解
- 自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题
- ubuntu 12.04安装gvim问题及解决
- vim配置详解
- MySQL Using xtrabackup backup and recovery example
- Linux下使用git
- gcc学习笔记
- java 基础系列:Java流
- makefile学习笔记
- ArcGIS For JavaScript API Specify LODs (levels of detail深度的详细信息)————(十四)