MSYS2下混合使用vim与gvim并使用同一套配置文件

https://msys2.github.io/下载MSYS2,推荐下载x86-64版,此版本内置了MinGW32与MinGW64 安装后首先更新MSYS2系统,顺序执行下列代码(注:每条语句执行完毕后若提示关闭终端,则应关闭终端重新打开,再继续下一跳指令)

pacman -Sy pacman
pacman -Syu
pacman -Su

所需软件:gcc(x64),make(可选,默认有mingw32-make),git MSYS2.exe或MinGW64.exe打开终端执行下列代码安装 pacman -S mingw-w64-x86_64-gcc make git

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

在源码目录vim/src/Makeming.mak修改添加如下代码($(MSYS2)替换为MSYS2的安装目录如C:/MSYS2) PYTHON=$(MSYS2)/mingw64 PYTHON_HOME=$(MSYS2)/mingw64 PYTHONINC=-I$(MSYS2)/mingw64/include/python2.7 DYNAMIC_PYTHON_DLL=libpython2.7.dll STATIC_STDCPLUS=yes ## 添加lua支持 下载地址:http://luabinaries.sourceforge.net/download.html x86系统下载lua-X.Y.ZWin32dllw4lib.zip x84系统下载lua-X.Y.ZWin64dllw4lib.zip 下载后解压至任意目录 在源码目录vim/src/Makeming.mak修改添加如下代码(已lua5.3.x为例)

LUA=C:/Lua53
LUA_VER=53
DYNAMIC_LUA=yes

然后复制解压出来的lua53.dll文件到windows的系统目录,具体哪个目录依赖于你的vim版本位数和windows版本位数:

32位Windows上编译32位vim: C:\Windows\System32
64位Windows上编译32位vim: C:\Windows\SysWOW64
64位Windows上编译64位vim: C:\Windows\System32

也可以复制lua53.dll到gvim所在的目录。

阅读vim/src/INSTALLpc.txt来设置makefile文件,MSYS2对应makefile位于vim/src/Makeming.mak 配置好后,MinGW64.exe打开终端,切换到vim/src目录,执行$ make -f Make_ming.mak USERNAME=xxx USERDOMAIN=xxx编译。 ## 配置启动 目标当然是要在'MSYS2/MINGW64'两个环境下都能用。'MINGW64'环境显然是对的,但MINGW64环境的几个dllMSYS2下时默认访问不到的,可以在.bashrc或者.zshrc中做如下处理:alias gvim="PATH=$PATH:/mingw64/bin /d/dev/tools/vim/src/gvim",后面只要简单打gvim就可以,也可以附加参数。这样还不用操心安装到哪里的问题,一般也不会污染其他地方的环境变量。 ## 加载配置文件 由于'MSYS2/MINGW64'两个环境下都设置了$HOME环境变量,这里的.vimrc是自动共享的。但新版的gvim会到~/vimfiles/autoload目录下而不是vim默认的 ~/.vim/autoload下去加载插件。如果复制两份的话显然很多麻烦事,这个问题可以用Windows 7+的符号链接来解决“ mklink /D .vim vimfiles 然后就多了一个相对连接到.vim文件夹的“符号链接”叫vimfiles,用Windowsdir命令可以看到: 2018/10/02 10:13 114 t.hpp 2018/10/02 14:01 <SYMLINKD> vimfiles [.vim] 2018/10/02 15:27 7,205 _viminfo 可以正常cd进去或者直接拿路径访问进去,完全一样。 ## 编写配置文件 gvim跟vim的配置需求略不一样,在.vimrc中可以通过if来分别配置: if has("gui_running") " set default encoding to utf-8, for YouCompleteMe " vim version works well with the default setting set encoding=utf-8 " set the python interpreter in windows path style let g:ycm_server_python_interpreter="D:/APP/MSYS2x64/mingw64/bin/python2.exe" endif 此外,gvim可能经常响起警告音来提示操作无效,这个大部分人会很讨厌,可以这样: if has("gui_running") " Maximize gvim on start "set lines=999 columns=999 " this is for *nix autocmd GUIEnter * simalt ~x " this is for windows " disable error bells set noerrorbells visualbell t_vb= autocmd GUIEnter * set visualbell t_vb= endif

  • 最后更改: 2019/05/27 14:17