Title: 如何从零开始在WIN10上编译安装vim并配置python开发环境
Authors: Jason zhao
Date: 2018年9月24日08点04分
DIY自己的VIM
在windows下编译安装的前提是:** 你必须安装了vs2017 comunity or 收费版本 **
因为我们的目的是建立支持python开发的工具,但是官方给的安装包,不支持
python&python3,所以你必须下载vim的源代码,然后进行编译,最后手动安装。
准备安装
- 请在合适的位置创建要编译的目录,本例的目录为d:\setup\vim\vimsource81
- cd d:\setup\vim\vimsource81
- 输入命令:git clone https://github.com/vim/vim.git
- cd vim
- cd src
- notepad INSTALLpc.txt,
记住要仔细阅读此文件,如果英语不好,按照我写的步骤来编译安装也可以。
编译vim
- 保持上一步的目录不变,即vimsource81\vim\src
- 环境信息设置:要找到D:\program\vs2017\VC\Auxiliary\Build\vcvarsx86_amd64.bat
- 执行上述的bat文件,就会将编译所需要的环境变量全部设置完毕
- 执行如下命令:
nmake -f Make_mvc.mak POSTSCRIPT=yes COLOR_EMOJI=yes OLE=yesnmake -f Make_mvc.mak POSTSCRIPT=yes COLOR_EMOJI=yes OLE=yes
GUI=yes IME=yes PYTHON3=D:\program\python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35
TERMINAL=yes MBYTE=yes DIRECTX=yes
- 上述命令就是启动编译的命令,后面具体跟了好多参数,我已经把需要的参数都
设置好了,你大可不必修改。如果真要修改,请参考INSTALLpc.txt
安装vim
-
切换到要安装的目录: cd d:\program\
-
创建安装目录:mkdir -p vim\vim81
-
切换到安装目录 cd vim\vim81
-
拷贝编译好的二进制文件到安装目录
- copy d:\setup\vim\vimsource81\vim\src\*.exe .\
- copy d:\setup\vim\vimsource81\vim\src\tee\tee.exe .\
- copy d:\setup\vim\vimsource81\vim\src\xxd\xxd.exe .\
-
安装右键菜单程序
- mkdir GvimExt64
- copy d:\setup\vim\vimsource81\vim\src\GvimExt\gvimext.dll
.\GvimExt64
-
下载图标文件类库:
- 下载连接
- 32位的和64位的都需要下载,下载gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip
- 解压到下的目录下:
* vim81:
(libintl-8.dll,libiconv-2.dll,libgcc_s_sjlj-1.dll)
* vim81\GimExt64:
(libintl-8.dll,libiconv-2.dll)
-
运行install.exe(就在vim81安装目录根目录下)
ok, 到此为止,vim的编译安装已经完成了,happy vimming!
配置VIM为python开发环境
windows下vim配置相关的注意事项
- 创建windows下的vim配置文件:vim c:\users\acer_vimrc
- 创建windows下的插件目录: mkdir c:\users\acer\vimfiles,注意不是*_vim*
安装插件管理器pathogen
在安装所有插件之前,必须首先安装pathogen,安装后,其他插件就使用git命令即可。
具体步骤如下:
扫描二维码关注公众号,回复:
5050362 查看本文章
- 下载pathogen.vim,链接
- 拷贝下载目录下的pathogen源代码目录下的autoload文件夹到c:\users\acer\vimfiles
- 配置文件_vimrc中增加如下内容:
execute pathogen#infect()
syntax on
filetype plugin indent on
- 打开命令行窗口,切换工作目录到 cd c:\users\acer\vimfiles
- 创建pathogen的插件目录 mkdir bundle
- 至此pathogen已经安装完毕,注意后续其他的插件安装都是放在bundle的子目录即可
安装几个重要的插件
注意安装插件的方式都是如下的形式:
- 确保命令行下你的当前目录是vimfiles\bundle
- git clone https://github.com/xxxxx/xxx.git
- _vimrc中添加配置项, 所有的插件配置请参考文末的配置文件代码
下面罗列下我安装的几个必要插件:
- python-mode的链接
- python-mode的配置请参考文末我自己的_vimrc
- airline是另一个非常漂亮的状态栏工具,参见下图
- airline的字体安装,需要下载特定的字体,然后在程序中引用才可以,
英文版教程在这里 - ctrlp是快速搜索文件的插件,你可以很快的找到你想要的源代码文件进行编辑
- NERDTREE是一个工程目录树管理工具,你可以在不用鼠标的情况下进行文件操作,
非常handy
难点FAQ
- 我已经安装了vim air
line的破解字体(powerline的字体),为什么还没有出现fancy的提示行呢?- 需要在_vimrc中进行配置,具体的代码如下,注意字体名称中的空格要用斜杠转义下:
set guifont=Source\ Code\ Pro\ for\ Powerline:h15
- vim 不能展示utf-8的字体怎么办?
set encoding=utf-8
- 为什么我安装了字体了,还是不能看到漂亮的箭头在air line中展示呢?
参考问题1
上配置文件
cd e:\mylab\project\tdx\sdsnotebook\sdspython
" 颜色风格
"color slate
"set t_Co=256
set background=dark
colorscheme solarized
"color wombat
set encoding=utf-8
syntax on
set number
set tw=79
set nowrap
set fo-=t
set colorcolumn=80
highlight ColorColumn ctermbg=233
" leader
let mapleader=","
filetype plugin on
" pathogen 插件管理工具首先需要设置
execute pathogen#infect()
filetype plugin indent on
" NERDTREE相关配置
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
map <F2> :NERDTreeToggle<CR>
" 显示行号
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=31
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 显示书签列表
let NERDTreeShowBookmarks=1
" let g:airline_powerline_fonts = 1
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
" CTRL-p 配置
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_working_path_mode='ra'
set wildignore+=*\\tmp*,*.swp,*.zip,*.exe,*.pyc,*.db
let g:ctrlp_custom_ignore='\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ }
" pymode设置
let g:pymode_python = 'python3'
let g:pymode = 1
let g:pymode_run=1
let g:pymode_run_bind='<leader>r'
" breakpoint
let g:pymode_breakpoint=1
let g:pymode_breakpoint_bind='<leader>b'
"rope support
let g:pymode_rope=1
let g:pymode_rope_completion=1
let g:pymode_rope_complete_on_dot=1
let g:pymode_rope_complete_bind='<C-Space>'
let g:pymode_rope_autoimport=0
let g:pymode_rope_autoimport_modules=['os','shutil','datetime']
let g:pymode_rope_autoimport_import_after_complete = 0
let g:pymode_lint_todo_symbol = 'WW'
let g:pymode_lint_comment_symbol = 'CC'
let g:pymode_lint_visual_symbol = 'RR'
let g:pymode_lint_error_symbol = 'EE'
let g:pymode_lint_info_symbol = 'II'
let g:pymode_lint_pyflakes_symbol = 'FF'
" airline 设置
" 设定字体为支持状态栏的字体,15号字
" 能够展示unix下的字体的字
set guifont=Source\ Code\ Pro\ for\ Powerline:h15
let g:airline_powerline_fonts = 1
" 大小写不敏感
set hlsearch
set incsearch
set ignorecase
set smartcase
" 关闭临时文件
set nobackup
set nowritebackup
set noswapfile