Windows下使用Msys2+Gcc编译多环境运行的vim

评价:
0
(0用户)

vim是unix下优秀的文本编辑器,在msys2的shell里已经内置了vim。

但是msys2不断更新,然后扔掉旧版本,想使用老版本的软件可能就没地方找了。我想改一下vim7.4的配置,就发现已经无法编译了。

msys2太冷门了,我在网上搜索攻略,终于编译出了vim.exe(32位),gvim.exe,

set PATH=c:\msys64\mingw32\bin;c:\msys64\usr\bin;%PATH%

(在windows下运行需要配置系统环境变量)

make -f Make_ming.mak GUI=no vim.exe

make -f Make_ming.mak GUI=yes gvim.exe

却发现vim.exe可以在windows下的powershell或cmd 环境下很好的运行,但不能在msys2 shell下运行。

要知道msys2官方的vim在cmd和msys2下都可以用的。

这个问题困扰了我几个月,反复研究说明文件,甚至到vim的官网去问,得到的答案就是vim要么编译成unix版本,要么编译成win32版本,而win32版本是不能在msys2的shell下使用的。在vim的说明文档里有:

最后终于研究明白了,分享给大家:

环境:

msys2+GCC10,注意不能用mingw32/64的gcc

msys2-runtime

msys2-runtime-devel

patch

autoconf

diffutils

m4

libcrypt-devel(crypt.h)

从msys2的repo下载vim8.2.1895的源码,解压,把/vim/*.patch拷贝到~/vim74/patch下

从vim的镜像网站http://mirror.metrocast.net/vim/unix/

下载vim7.4的源码,解压到~/vim74目录下。

先打补丁:

$ cd ~/vim74/src

$ patch -p2 -i ../patch/7.3-cygwin-mouse.patch

$ patch -p2 -i ../patch/7.3-virc.patch

$ patch -p2 -i ../patch/7.3-cygwin-python-dyn.patch

$ patch -p2 -i ../patch/pretend-cygwin-msys.patch

$ patch -p2 -i ../patch/accept-crlf.patch

$ autoconf

注意,由于补丁的路径名是7.3的,会被询问要打补丁的文件名,输入不带路径的就可以了。

然后configure

./configure \
--prefix=/usr \
--build=${CHOST} \
--with-features=huge \
--with-tlib=ncurses \
--enable-cscope \
--enable-multibyte \
--enable-luainterp=dynamic \
--disable-perlinterp \
--enable-pythoninterp=no \
--enable-python3interp=dynamic \
--enable-rubyinterp=dynamic \
--disable-tclinterp \
--disable-gpm --disable-sysmouse \
--disable-gui --without-x \
CPPFLAGS="${CPPFLAGS} -I/usr/include/ncurses" \
--with-compiledby="<https://aaa>"

多字节支持,中文支持,lua/python/perl脚本支持等可以在这里调整。因为perl脚本支持的一个宏在make时会报错搞不定(在vim8.2是没错误的),怀疑我用的GCC10版本太高,已经禁掉了。

make

$ make -j1 VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/vim${_topver/\.}

会在./src下编译出一个很大的vim.exe

$ ./vim.exe试一下,已经可以看到界面了。

但是不能在windows下点击运行,需要拷贝到/usr/bin下才行,因为需要msys-2.0.dll和msys-ncursesw6.dll两个运行时。

$ make -j1 VIMRCLOC=/etc DESTDIR=~/vim74/src/pkg install

在pkg下会汇集一个准备打包的文件集,注意DESTDIR要使用完整路径。

这里的vim.exe就小多了,只有2M。

$ make install -j1 \

    VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/vim${_topver/\.} \

    STRIP=: INSTALL_DATA="cp -L" INSTALL_DATA_R="cp -Lr" \

    DESTDIR="${pkgdir}"

配置完整的文件集,vim.exe又回到了巨大的状态,view, rvim之类的倒还是小的,其实都是一个,名字不同而已,改一个回来吧。

然后,就可以打包发布使用了。

本文出自:https://blog.csdn.net/klima/article/details/127303416

注册并通过认证的用户才可以进行评价!

admin:系统自动奖励,+10,  

发表评论