本文来自依云's Blog,转载请注明。
虽然已经在Linux下待了这么长时间,可是,还是有很多时候,我不得不面对难用的Windows。而在Linux下一直自己编译Vim的我,今天在得知刘春棍的行动的支持下,终于鼓足了勇气,下载安装MinGW,编译了GVIM。
在Windows下编译GVIM和Linux下不同,不能用./configure
来配置,要到src
目录下,修改这下面的Make_ming.mak
文件,改好后直接make -f Make_ming.mak
编译。
Win下编译东西花的时间长就不说了。我编译了好几遍。Python支持没问题,设定好路径就OK,Ruby我是为编译GVIM专门装的,除了静态编译时会报错外,还有个很严重的问题,导致我最后放弃了+ruby
。这个后面再说。Lua我下的是最新的5.2版,一个lua5_2_work2_Win32_bin.zip包含了exe和dll文件,另一个lua5_2_work2_Win32_mingw4_lib.zip包含了头文件和一个 .a 文件。我最开始以为和ruby一样只能动态载入,于是设置了DYNAMIC_LUA=yes
,结果编译是成功了,但载入失败:
我用cg搜索了下,luaL_typerror
被 #define 成了luaL_typeerror
,这看来是5.2改的。我手动在if_lua.c
里把这个给改了,结果发现,还有其它函数也是类似的情况,比如lua_call
等。于是我尝试静态编进去试试,竟然成功了!
然而,喜悦总是短暂的。我以前只知道ruby支持有问题,没想到这次问题更严重了,:edit
命令都用不了:
当然,一开始我还不能肯定是ruby支持的问题,但当编译了不带ruby支持的版本后,这个奇异的问题就没有了。
Vim7.3对其他语言的支持的问题真是多啊:Python3的中文支持有问题,ruby的支持也有问题,要支持Lua5.2还得自己改源代码。。。
不管怎么说,Lua静态编译进去了我还是很高兴的。虽然在没装Lua的机器上没那些Lua的库的,但至少在Vimscript外又多了一种可用的语言了。
最后,想下载我编译的 Windows 32 版 vim 的请到这里来。
14 年前
出现下面那个图的原因一般是系统没有安装vc 运行库。缺少程序运行必需的那个啥vcxxx.dll 文件 。
14 年前
我刚刚确认了,Vim在调用Lusty-explorer时是段错误。在Procmon里没发现任何有用的信息,在gdb里只看到SEGSEGV。
14 年前
对了跟你说一下……Lua5.2-alpha版本已经去掉了luaL_typeerror函数了……我死都没找到这个函数= =
有一个luaG_typeerror,不过从名字就可以看出来仅限内部使用了= =
14 年前
我看了下,有个 typeerror 函数,希望 vim 对 lua5.2 的支持不要像 python3 的那样,姗姗来迟还 bug 多多。
不过,我 win 上的 lua5.2 是怎么来的呢。。。
14 年前
啊……大姐,难道你没看见typeerror函数的定义前有个static么…………
14 年前
我才看到。。。。
14 年前
强烈建议依云姐姐能向Vim-dev提交Lua5.2-alpha的if_lua.c补丁……
14 年前
我要是有这功夫就去补 if_python3.c 了