IGNORANT

Windows编译安装Vim

先附上一张安装Gvim成功,并配置后的图。

在官网https://www.vim.org下载的Gvim,虽然支持python/pyhton3(貌似仅Gvim支持,而cmd下的vim并不支持)。为官方下载的vim配置ycm代码自动补全插件,无奈弹窗显示需要python编译安装的vim。于是卸掉官方下载的vim,开始自己手动编译vim。
2019-04-30:重装系统后,虽然可以直接使用之前编译的gVim包,但是,不想再安装Python2,另外想直接在终端打开Vim,所以,重新编译无GUI版的vim。
2019-04-30:在使用之前编译的GVim时,发现用什么版本的Pytho编译的,安装时就需要对应的Python版本。
(以下为描述方便,只谈vim的操作,gVim应是同理,在不同处会略作区分)。

实践经历
2018:安装Gvim
2019:安装Vim

本文所需环境

安装Git

官网下载后一键安装:https://git-scm.com

安装Msys2

安装

https://www.msys2.org/下载 msys2-x86_64-20180531.exe安装到磁盘上,例如D:\01DevelopToos\msys64\
D:\01DevelopToos\msys64\mingw64\bin加入到环境变量中(如果之前安装了MinGW,请移除MinGW的环境变量路径,本人曾因未移除该变量,导致编译后的Gvim不可用,显示无法定位程序输入点)。

修改源

下面使用清华的源,也可以使用中科大的源(https://mirrors.ustc.edu.cn
D:\01DevelopToos\msys64\etc\pacman.d\mirrorlist.mingw32
注释所有的Server,添加

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

D:\01DevelopToos\msys64\etc\pacman.d\mirrorlist.mingw64
注释所有,添加

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

D:\01DevelopToos\msys64\etc\pacman.d\mirrorlist.msys
注释所有,添加

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

注:如果中途镜像服务器抽风,导致获取失败,可以ctrl+c强制中断后,重新下载,已下载好的包不会重新下载。

更新软件源并安装编译环境所需包

打开Msys2 Msys:
1.更新软件源:

pacman -Syu

2.更新msys2核心程序包

pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl

注:如果以上程序有更新,则需要重启bash。

3.安装编译环境:

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make git diffutils

验证安装

cmd下输入gcc --version,返回结果应如下:

安装Python

https://www.python.org去下载最新的Python版本Python 3.x.xWindows x86-64 executable installer,安装(记住勾选添加到系统变量中),本人的安装目录分别是:D:\01DevelopToos\Python37
安装后,在cmd输入python:

编译vim

下载vim

在磁盘某个文件夹下(例如,D:\)执行:

git clone https://github.com/vim/vim.git

打开msys2 MinGW 64bit:

cd /d/vim/src
cp Make_cyg_ming.mak custom.mak
vim custom.mak

说明:此处的vim是Msys2自带的,如果你对vim不太熟悉,可以使用其他编辑器打开custom.mak进行编辑

修改编译配置

接着修改custom.mak
是否需要GUI
找到下面的代码:

# set to yes to make gvim, no for vim
GUI=no

如果你需要编译安装Vim,改为GUI=no,需要Gvim就改为GUI=yes。我们这里编译Vim,便改为no。
修改ARCH
找到下面的注释:

If not set, it will be automatically detected. (Normally i686 or x86-64.)

指定ARCH=x86-64

# If not set, it will be automatically detected. (Normally i686 or x86-64.)
ARCH=x86-64

Python3 interface指定python3的安装路径
找到下面的注释:

#    Python3 interface:
#      PYTHON3=[Path to Python3 directory] (Set inside Make_cyg.mak or Make_ming.mak)
#      DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically)
#      PYTHON3_VER=[Python3 version, eg 31, 32] (default is 36)

修改说明:在ifdef PYTHON3前添加:

ifndef PYTHON3
PYTHON3=D:/01DevelopToos/Python37
endif

并且把下面的一段:

ifndef PYTHON3_VER
PYTHON3_VER=36
endif

中的36改为37
提示:注意windows下路径中的\需要修改为/,如有空格,需要在前加转义符。
修改后如下

#    Python3 interface:
#      PYTHON3=[Path to Python3 directory] (Set inside Make_cyg.mak or Make_ming.mak)
#      DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically)
#      PYTHON3_VER=[Python3 version, eg 31, 32] (default is 36)
ifndef PYTHON3
PYTHON3=D:/01DevelopToos/Python37
endif
ifdef PYTHON3
ifndef DYNAMIC_PYTHON3
DYNAMIC_PYTHON3=yes
endif

ifndef PYTHON3_VER
PYTHON3_VER=37
endif
ifndef DYNAMIC_PYTHON3_DLL
DYNAMIC_PYTHON3_DLL=python$(PYTHON3_VER).dll
endif
ifdef PYTHON3_HOME
PYTHON3_HOME_DEF=-DPYTHON3_HOME=L\"$(PYTHON3_HOME)\"
endif

ifeq (no,$(DYNAMIC_PYTHON3))
PYTHON3LIB=-L$(PYTHON3)/libs -lpython$(PYTHON3_VER)
endif

ifndef PYTHON3INC
ifeq ($(CROSS),no)
PYTHON3INC=-I $(PYTHON3)/include
else
PYTHON3INC=-I $(PYTHON3)/win32inc
endif
endif
endif

编译安装

/d/vim/src执行mingw32-make.exe -f custom.mak

$ mingw32-make.exe -f custom.mak

若有编译失败,或者想重新编译,可以先clean后再执行上面的命令:

mingw32-make.exe -f custom.mak clean

等待编译成功后,src下会生成vim.exe(或gvim.exe)以及install.exe

cd .. # 回到/e/DevelopTools/vim-master
vim pkg.sh
# 输入以下内容
mkdir -p vim-x64/vim81
cp -a runtime/* vim-x64/vim81
cp -a src/*.exe vim-x64/vim81
cp -a src/GvimExt/gvimext.dll vim-x64/vim81
cp -a src/xxd/xxd.exe vim-x64/vim81
cp -a vimtutor.bat vim-x64/vim81
# :wq后再执行:
./pkg.sh

在生成了vim-x64/vim81,子目录vim81便是编译后的vim,将其移动到你想安装的位置,例如C\vim81。然后以管理员身份运行viminstall.exe选择d进行安装。

注:此处vim81的命名并不是随意的,格式为vim+版本号,如果不知道版本号,你可以管理员的cmd下运行install.exe,根据报错信息找到版本号。

cmd下输入vim,打开成功,输入:version查是否支持看python3:


参考文章:
1.https://blog.csdn.net/qz757/article/details/53362975
2.https://www.jianshu.com/p/85739296bdc5

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »