如何从零配置高效的tensorflow python编程环境之VIM神的编辑器---DIY自己的VIM


Title: 如何从零开始在WIN10上编译安装vim并配置python开发环境

Authors: Jason zhao
Date: 2018年9月24日08点04分

DIY自己的VIM

在windows下编译安装的前提是:** 你必须安装了vs2017 comunity or 收费版本 **
因为我们的目的是建立支持python开发的工具,但是官方给的安装包,不支持
python&python3,所以你必须下载vim的源代码,然后进行编译,最后手动安装。

准备安装

  1. 请在合适的位置创建要编译的目录,本例的目录为d:\setup\vim\vimsource81
  2. cd d:\setup\vim\vimsource81
  3. 输入命令:git clone https://github.com/vim/vim.git
  4. cd vim
  5. cd src
  6. notepad INSTALLpc.txt,
    记住要仔细阅读此文件,如果英语不好,按照我写的步骤来编译安装也可以。

编译vim

  1. 保持上一步的目录不变,即vimsource81\vim\src
  2. 环境信息设置:要找到D:\program\vs2017\VC\Auxiliary\Build\vcvarsx86_amd64.bat
  3. 执行上述的bat文件,就会将编译所需要的环境变量全部设置完毕
  4. 执行如下命令:
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
  1. 上述命令就是启动编译的命令,后面具体跟了好多参数,我已经把需要的参数都
    设置好了,你大可不必修改。如果真要修改,请参考INSTALLpc.txt

安装vim

  1. 切换到要安装的目录: cd d:\program\

  2. 创建安装目录:mkdir -p vim\vim81

  3. 切换到安装目录 cd vim\vim81

  4. 拷贝编译好的二进制文件到安装目录

    • 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 .\
  5. 安装右键菜单程序

    • mkdir GvimExt64
    • copy d:\setup\vim\vimsource81\vim\src\GvimExt\gvimext.dll
      .\GvimExt64
  6. 下载图标文件类库:

    • 下载连接
    • 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)
  7. 运行install.exe(就在vim81安装目录根目录下)

ok, 到此为止,vim的编译安装已经完成了,happy vimming!

配置VIM为python开发环境

windows下vim配置相关的注意事项

  1. 创建windows下的vim配置文件:vim c:\users\acer_vimrc
  2. 创建windows下的插件目录: mkdir c:\users\acer\vimfiles,注意不是*_vim*

安装插件管理器pathogen

在安装所有插件之前,必须首先安装pathogen,安装后,其他插件就使用git命令即可。
具体步骤如下:

  1. 下载pathogen.vim,链接
  2. 拷贝下载目录下的pathogen源代码目录下的autoload文件夹到c:\users\acer\vimfiles
  3. 配置文件_vimrc中增加如下内容:
	execute pathogen#infect()
	syntax on
	filetype plugin indent on
  1. 打开命令行窗口,切换工作目录到 cd c:\users\acer\vimfiles
  2. 创建pathogen的插件目录 mkdir bundle
  3. 至此pathogen已经安装完毕,注意后续其他的插件安装都是放在bundle的子目录即可

安装几个重要的插件

注意安装插件的方式都是如下的形式:

  1. 确保命令行下你的当前目录是vimfiles\bundle
  2. git clone https://github.com/xxxxx/xxx.git
  3. _vimrc中添加配置项, 所有的插件配置请参考文末的配置文件代码

下面罗列下我安装的几个必要插件:

  1. python-mode的链接
  2. python-mode的配置请参考文末我自己的_vimrc
  3. airline是另一个非常漂亮的状态栏工具,参见下图
    如何从零配置高效的tensorflow python编程环境之VIM神的编辑器---DIY自己的VIM
  4. airline的字体安装,需要下载特定的字体,然后在程序中引用才可以,
    英文版教程在这里
  5. ctrlp是快速搜索文件的插件,你可以很快的找到你想要的源代码文件进行编辑
  6. NERDTREE是一个工程目录树管理工具,你可以在不用鼠标的情况下进行文件操作,
    非常handy

难点FAQ

  1. 我已经安装了vim air
    line的**字体(powerline的字体),为什么还没有出现fancy的提示行呢?
    • 需要在_vimrc中进行配置,具体的代码如下,注意字体名称中的空格要用斜杠转义下:
    set guifont=Source\ Code\ Pro\ for\ Powerline:h15
    
  2. vim 不能展示utf-8的字体怎么办?
     set encoding=utf-8
    
  3. 为什么我安装了字体了,还是不能看到漂亮的箭头在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