学习了一段时间Vim,感觉有些功能真的很方便。因学习原因,工作平台更换到一台老式Xp电脑上,重新安装了Vim7.4。官网默认版本不支持等宽字体和GDI++渲染,需要手工编译一个修改过的版本。

1、下载MinGW

直接从MinGW官网下载的是在线安装包,安装起来比较慢,所以从MinGW Distro下载第三方制作好的安装包,这里使用的10.2版本;

也可以使用TDM-GCC 。

2、下载Gvim最新源码

电脑上没有安装Hg,所以从Github上的镜像下载https://github.com/b4winckler/vim;

3、修改源码,增加对等宽字体和GDI++的渲染

进入src文件夹,修改gui_w32.c,增加GDI++渲染功能:

/* On NT, tell the font renderer not to "help" us with Hebrew and Arabic* text.  This doesn't work in 9x, so we have to deal with it manually on* those systems. */
/* bucunzai: font renderer注释掉下面两行 */
/*
if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
foptions |= ETO_IGNORELANGUAGE;
*/

修改os_mswin.c,使之可以使用等宽字体:

 #ifndef FEAT_PROPORTIONAL_FONTS/* Ignore non-monospace fonts without further ado *//** hzmangel: I need non-monospace fonts!if ((ntm->tmPitchAndFamily & 1) != 0)return 1;*/#endif

4、安装Lua5.2

  从Lua官方网站的链接下载Lua5.2Binnary和库文件,保存在C:/Lua目录下。

4、使用MinGW环境进行编译

进入MinGW目录,运行open_distro_window.bat;cd进入vim74/src目录,输入

make.exe -f Make_ming.mak GUI=yes OLE=yes FEATURES=HUGE PYTHON="C:/Python27" PYTHON_VER=27 USERNAME=abcat513 USERDOMAIN=163.com gvim.exe

  后来写了一个bat文件:

make.exe -f Make_ming.mak GUI=yes FEATURES=HUGE MBYTE=yes IME=yes GIME=yes DYNAMIC_IME=yes OLE=yes PYTHON="C:/Python27" DYNAMIC_PYTHON=yes PYTHON_VER=27  CSCOPE=yes DEBUG=no LUA="C:\Lua" DYNAMIC_LUA=yes LUA_VER=52 USERNAME=abcat513 USERDOMAIN=163.com gvim.exe
make.exe -f Make_ming.mak GUI=no FEATURES=HUGE MBYTE=yes IME=yes PYTHON="C:\Python27" DYNAMIC_PYTHON=yes PYTHON_VER=27  CSCOPE=yes DEBUG=no LUA="C:\Lua" DYNAMIC_LUA=yes LUA_VER=52 USERNAME=abcat513 USERDOMAIN=163.com vim.exe

  在MinGW环境下进入vim/src目录并运行,就可以编译出支持Lua5.2和Python 2.7的Gvim和Vim来,使用Lua需要将Lua52.dll复制到Vim目录下,此时在Windows下就支持使用Neocomplete插件补全。

  如果是64位的系统,可以加上:ARCH=x86-64 选项。

命令具体解释可以参考:windows下重新编译Vim7.3(支持GDI++渲染)  也可以参考Build Python-enabled Vim on Windows with MinGW

5、设置等宽字体

下载了YaHei Consolas Hybird,并在vimrc中设置

if has("win32")let $VIMFILES= $VIM.'/vimfiles'set rtp+=$VIM/vimfiles/bundle/vundlesource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinsource $VIMRUNTIME/delmenu.vimset langmenu=en_USsource $VIMRUNTIME/menu.vimlanguage messages zh_CN.utf-8set guifont=YaHei_Consolas_Hybrid:h14call vundle#rc('$VIM/vimfiles/bundle/')
elseset rtp+=~/.vim/bundle/vundle/let $VIMFILES = $HOME.'/.vim'if has("gui_gtk2")set guifont=Inconsolata\ 14,Fixed\ 14set guifontwide=WenQuanYi\ Zen\ Hei\ 14endifcall vundle#rc()
endif

\空格 在vim脚本中,指的是空格。在不同系统下有不同的表现。call vundle#rc是指需要运行vundle插件,并且根据系统不同设置不同的插件目录。

编译错误为 target pathdef.c 执行失败时,可以修改Make_ming.mak
错误代码的区块:

 1 pathdef.c: $(INCL)
 2 ifneq (sh.exe, $(SHELL))
 3 @echo creating pathdef.c
 4 @echo '/* pathdef.c */' > pathdef.c
 5 @echo '#include "vim.h"' >> pathdef.c
 6 @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
 7 @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
 8 @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
 9 @echo 'char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> pathdef.c
10 @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
11 @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
12 else
13 @echo creating pathdef.c
14 @echo /* pathdef.c */ > pathdef.c
15 @echo #include "vim.h" >> pathdef.c
16 @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
17 @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
18 @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
19 @echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> pathdef.c
20 @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
21 @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
22 endif

第三行 @echo creating pathdef.c
给creating pathdef.c加上引号。保存,再执行make操作。

vim 7.4 356之后都支持新的参数 breakindent

效果如下:

这个网站上有编译好的最新vim。

转载于:https://www.cnblogs.com/abcat/p/3392727.html

Windows下MinGW编译vim7.4相关推荐

  1. windows下MinGW编译openssl库(64位、32位)图文解析

    环境:windows10 64位 工具链:MinGW64 IDE:CLion MinGW编译openssl 有两种方式获取到动态库: 一种是自己编译,编译源码 一种是在msys下安装openssl库的 ...

  2. Boost在Linux和windows下的编译 32位 64位

    一 简言 1. Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一 2. Boost官网地址:http://www.boost.org/ 3. 本博客示 ...

  3. tinyxml在linux和windows下的编译及使用详解

    一:摘要 1.XML全称EXtensible Markup Language,翻译为可扩展标记语言,XML文件通常就是一个文本文件,可以使用任何编码 2.TinyXML是一个开源的C++用来处理XML ...

  4. jsoncpp在linux和windows下的编译及使用详解

    一:摘要 1. JSON是一种轻量级的数据传输格式,全称为:JavaScript Object Notation,官方网址: http://www.json.org/json-zh.html 3. J ...

  5. Agg在Windows下的编译与使用

    Agg在Windows下的编译与使用 flyfish Agg简介 AGG(Anti-Grain Geometry)是一个开源免费的图形库. 官网地址: www.antigrain.com 主要是编译称 ...

  6. ncnn环境搭建一 - windows下protobuf编译安装

    1. 环境 安装环境采用visual studio 2015 + protobuf 3.4.0 + ncnn 2. visual studio 2015安装 visual studio采用的是 vs2 ...

  7. windows使用mingw编译Android端openblas

    windows使用mingw编译Android端openblas 参考官方编译方法How to build OpenBLAS for Android,将TOOLCHAIN中的darwin-x86_64 ...

  8. 【转载】【VSCode】Windows下VSCode编译调试c/c++

    转载自:http://blog.csdn.net/c_duoduo/article/details/51615381 懒得自己配置或自己配置出现不明问题的朋友可以点这里:  [VSCode]Windo ...

  9. 开源的excel读取库libxls在windows下的编译,且支持中文,全网首发

    转载请注明出处:http://www.cnblogs.com/superbi/p/5482516.html 到目前为止,网络和官网上并没有关于libxls在windows下支持中文的教程,也没有现成的 ...

最新文章

  1. Vyond制作2D动画学习教程
  2. 广发证券王环:神策数据不止为我节省了 3 名研发工程师
  3. cmake 找不到 macros_愿我们在彼此看不到的岁月里熠熠生辉
  4. JavaScriptWindow使用对象
  5. c语言int a什么意思,问一下吧里大神 int a = a; 这么定义是什么意思?
  6. 【测试】提交BUG的标准规范
  7. tt桌球瞄准器手机版_法国或将禁止不可拆卸手机,想当年手机后盖随便拆开玩儿...
  8. Tyvj P1015 公路骑 (DP)
  9. Excel表格合并单元格丢失边框
  10. 3.giant component(netlogo)
  11. 爬虫python技术分享_Python技术分享:爬虫
  12. 广域网加速方案--Riverbed
  13. wnmp php7,wnmp windows 2012 r2+php7.0+nginx1.14安装
  14. OMF(Oracle Managed Files,Oracle管理的文件)介绍
  15. Git版本控制管理——钩子
  16. 域名会到期吗?到期的域名会怎么处理呢?
  17. Linux和Windows误删文件恢复办法
  18. windows下使用GRUB2 制作支持BIOS和UEFI的WINPE、LINUX、MAXDOS多引导U盘
  19. 高德POI数据生产中的计算机视觉技术
  20. Android FOTA 升级流程

热门文章

  1. 用区块链打击假新闻 这可能是最2017年的一件事
  2. 新秀翻译(两)——使用Java通用配置模板方法模式
  3. 域用户权限|安装软件
  4. 极端高温导致澳大利亚断网
  5. 《Android应用开发攻略》——2.14 备份Android应用程序数据
  6. 智慧“昆明”在路上 未来充满精彩
  7. hibernate 环境搭建测试
  8. ios添加设备真机测试,以及Undefined symbols for architecture x86_64:''错误
  9. SQL Server 分区表 处理海量数据
  10. lenze变频器怎么更改地址_英威腾变频器GD300维修