日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows下MinGW编译vim7.4

發布時間:2023/12/4 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows下MinGW编译vim7.4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習了一段時間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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。