美文网首页Linuxpython加油站python
vim的安装、配置及python3开发环境配置

vim的安装、配置及python3开发环境配置

作者: zhengjie | 来源:发表于2017-08-26 08:51 被阅读1122次

    主要为大家介绍一下vim的安装、配置及python3开发环境配置,文中经验一部分取自网上,一部分为自己的经验。希望能帮助到有需要的朋友。
    首先为大家介绍一下系统情况:

    • Ubuntu16.04
    • Python3.5

    一、安装vim

    如果系统中已安装了vim,需要检查一下vim是否满足需求:

    1. 版本大于7.3
    2. 支持Python
      在shell下输入命令vim --version,会显示出版本号和支持的特性,你需要在里面检查一下有没有+python3字样,如果vim版本过低或是不支持python,你就需要重新安装vim了。
      vimversion.png

    (一)卸载vim

    在shell中输入以下命令:
    sudo apt remove vim

    (二)安装vim

    不要使用以下命令安装vim:
    sudo apt install vim
    使用此命令安装的vim缺少对于Python的支持,很多Python编写的插件都无法使用,此前我就在这里被卡死了。所以你需要使用源码编译来安装vim,或者你也可以和我一样使用以下命令来安装:
    sudo apt install vim-nox

    二、安装Vundle插件管理器

    Vundle是vim下使用最为广泛的插件管理器,下面就为大家介绍一下如何安装Vundle。
    首先在Shell命令行中运行以下命令:
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    该命令将把Vundle插件管理器下载到~/.vim/bundle/文件夹下,此后就需要使用配置.vimrc文件来安装插件。
    首先要在你的主目录下新建一个名为.vimrc的vim配置文件。在shell中运行以下命令:

    cd ~
    touch .vimrc
    ls
    

    这样.vimrc文件就新建好了,此时打开.vimrc文件里面是空的。
    然后将下面的Vundle配置添加到.vimrc文件的顶部:

    set nocompatible              " required
    filetype off                  " required
    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')
    " let Vundle manage Vundle, required
    Plugin 'gmarik/Vundle.vim'
    " Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
    
    
    
    " All of your Plugins must be added before the following line
    call vundle#end()            " required
    filetype plugin indent on    " required
    

    上面的空白处是用来添加另外插件的。配置完毕后可使用以下方法来安装:

    • 运行vim后在normal模式下运行:PluginInstall命令

    三、安装YouCompleteMe插件

    YouCompleteMe(YCM)是一个功能非常强大的代码补全工具,可说是python开发的最佳搭档。

    1. 在安装YCM前,还需要先安装一些必须的软件:
      sudo apt install python-dev python3-dev cmake
    2. 接着在~/.vimrc上文的空白处添加YCM配置:
      Plugin 'Valloric/YouCompleteMe'
    3. 然后运行vim在normal模式下运行:PluginInstall,系统即会将YCM安装到~/.vim/bundle/目录下。
      这里需要特别提醒大家的是YCM的体积比较大,等待的时间会比较长,有时会出错退出安装,这时在运行vim时,在窗口下部会出现红色的YouCompleteMe unavailable: No module named 'future'的提示。这是由于YCM没有下载完毕所造成的,这时可以换用Git来继续安装YCM:
      在Shell下输入cd ~/.vim/bundle/YouCompleteMe进入YCM目录,然后输入
      git submodule update --init --recursive命令,如下载过程中又出现中断出错,就继续运行此命令。
    4. 在克隆完成之后,输入:
      ./install.py --clang-completer
    5. 然后再在文件夹里执行./install.py安装,根据你的机器环境可能会提示你先执行一个Git命令克隆一些必须的库,按照提示运行就可以了。克隆完成之后再执行./install.py。
    6. 运行完毕后可在.vimrc文件中添加以下配置来让完成补全之后preview窗口自动消失:
      let g:SimpyIFold_docstring_preview=1
    7. 复制.ycm_extra_conf.py文件至~/.vim目录下
      cp ~/.vim/bundle/YoucompleteMe/third_parth/ycmd/examples/.ycm_extra_conf.py ~/.vim/
    8. 在.vimrc中添加YCM配置,打开.vimrc文件,在文件最后加入:
    let g:ycm_server_python_interpreter='/usr/bin/python3'
    let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
    

    此处要填写你自己机器上的python解释器的版本位置。

    1. 以下配置你可以根据自己需求进行配置:
      set completeopt-=preview
      补全内容不以分割子窗口形式出现,只显示补全列表
      let g:ycm_autoclose_preview_window_after_completion=1
      完成操作后自动补全窗口不消失

    四、安装NERDTree插件

    使用NERDTree插件可以在Vim窗口中显示一个文件树。

    1. ~/.vimrc文件空白处添加
      Plugin 'scrooloose/nerdtree'
    2. 运行Vim在normal模式下运行:PluginInstall
    3. 打开.vimrc配置文件在最后加上一句let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree,这样会使NERDTree在显示时隐藏.pyc文件。

    五、配置vim环境

    Vim下的插件非常之多,在这里就简要给大家介绍了以上两个,你可以上网去搜索更多你感兴趣的插件,安装完插件后我们就要来对Vim进行配置,使其更符合我们的工作习惯。对Vim进行配置是通过.vimrc文件进行的。下面贴出的是我使用的vim配置文件,有需要的朋友可以看一看。

    "显示相关
    "set shortmess=atI  "不显示帮助乌干达的提示
    colorscheme delek "设置配色方案
    set showcmd "输入的命令显示出来
    syntax on "语法高亮
    set tabstop=4  "Tab键的宽度设为4
    set softtabstop=4
    set shiftwidth=4  "统一缩进为4
    set autoindent  "开启自动缩进,保持缩进值与上一行相等
    autocmd InsertLeave * se nocul "用浅色高亮当前行
    autocmd InsertEnter * se cul "用浅色高亮当前行
    set ruler "显示当前光标行列位置
    set mouse=a "支持鼠标
    set laststatus=2 "显示状态栏(默认值为1,无法显示状态栏)
    if has('gui_running')
        set t_Co=256
    endif
    set guifont=Mono
    set autoread "当文件在外部修改时,vim自动更新载入
    set ignorecase "搜索时忽略大小写
    set foldmethod=syntax
    set nofoldenable "此两行为折叠代码
    "自定义键映射
    "实现CTRL-w保存操作
    nnoremap <C-w> :w<cr>
    imap <C-w> <Esc>:w<cr>i
    "映射以F5打开NERDTree
    nnoremap <silent> <F5> :NERDTree<CR>
    "映射自动补全括号
    inoremap ( ()<ESC>i
    inoremap [ []<ESC>i
    inoremap { {}<ESC>i
    inoremap " ""<ESC>i
    inoremap ' ''<ESC>i
    set encoding=utf-8
    set fenc=utf-8
    set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936,big-5
    set enc=utf-8
    let &termencoding=&encoding
    set nu
    set nocompatible              " required,关闭vi兼容模式
    filetype off                  " required
    set list listchars=tab:>-,trail:-,eol:$  "设定tab键显示为>-,每行行尾显示$
    set report=0
    "python运行配置
    map <F6> :w<cr>:!python3 %<cr>:q<cr>  "按F6键进行python调试
    au BufNewFile,BufRead *.py "设置py文件支持PEP8风格
    \ set tabstop=4r
    \ set softtabstop=4
    \ set shiftwidth=4
    \ set textwidth=79
    \ set expandtab
    \ set autoindent
    \ set fileformat=unix
    "auto add pyhton header --start 自动添加py文件头 
    autocmd BufNewFile *.py 0r ~/.vim/vim_template/vim_python_header  
    autocmd BufNewFile *.py ks|call FileName()|'s  
    autocmd BufNewFile *.py ks|call CreatedTime()|'s  
    
    fun FileName()  
        if line("$") > 10
            let l = 10  "这里是字母L
        else
            let l =line("$")
        endif
        exe "1,".l."g/File Name:.*/s/File Name:.*/File Name:".expand("%")
    "最前面是数字1,这里的File Name:和模板中一致
    endfun
    
    fun CreatedTime()
        if line("$") > 10
            let l=10
        else
            let l=line("$")
        endif
        exe "1,".l."g/Created Time:.*/s/Created Time:.*/Created Time:".strftime("%Y-%m-%d %T")
    "这里Create Time:要和模板中一致
    endfun
    "auto add python header --end
    
    "vundle配置
    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')
    
    " let Vundle manage Vundle, required
    Plugin 'gmarik/Vundle.vim'
    
    " Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
    Plugin 'Valloric/YouCompleteMe'
    Plugin 'jistr/vim-nerdtree-tabs'
    Plugin 'scrooloose/nerdtree'
    Bundle 'davidhalter/jedi-vim'
    " All of your Plugins must be added before the following line
    call vundle#end()            " required
    filetype plugin indent on    " required
    let g:ycm_server_python_interpreter='/usr/bin/python3'
    let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
    let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree
    let g:ycm_autoclose_preview_window_after_completion=1
    

    在这个配置文件中,我主要设置了以下功能:

    • 设置了vim使用的配色方案,colorscheme delek,这里我使用的是delek配色方案,大家也可以设置自己喜欢的配色方案,vim本身就自带有多套的配色方案。在Shell中输入vim命令,在normal模式下,normal模式就是你刚进入vim时的那个状态,输入:colorscheme <Tab>就可以在切换使用的配色方案,但这种方法对于配色方案的修改只是一次性的,需要永久更换配色方案的话,就请记下配色方案的名字,将.vimrc中的配色方案名称更改就可以了。如果对于自带配色方案不满意的话,也可以自行上网下载一些大神配置好配色方案。将下载好的配色方案复制到/usr/share/vim/vim74/colors/中,在你的机器上文件夹的名字可能不是vim74,你可以进入cd /usr/share/vim/文件夹中看看自己的文件夹名,拷贝进去后你的配色方案就可使用了。如果你想配置自己的配色方案,请自行百度。
    • 设置了显示行号set nu,CTRL-w保存文件,各类括号和引号的自动补全。
    • 设置按F5打开NERDTree插件nnoremap <silent> <F5> :NERDTree<CR>,你也可以设置自己的快捷键。
    • 设置按F6自动运行编写的python程序。map <F6> :w<cr>:!python3 %<cr>:q<cr>,此处也可自行设置。
    • 设置了自动添加python文件头。效果如下:
      vim new.py
      vimnewpy.png
      模板存放在~/.vim/vim_template/路径下,模板名为`vim_python_header' ,具体内容如下,可自行创建:
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    #File Name:
    #Created Time:
    
    • 配置了python代码缩进
    au BufNewFile,BufRead *.py "设置py文件支持PEP8风格
    \ set tabstop=4r
    \ set softtabstop=4
    \ set shiftwidth=4
    \ set textwidth=79
    \ set expandtab
    \ set autoindent
    \ set fileformat=unix
    
    • 设置安装vundle、YouCompleteMe、nerdtree插件
      这里只是简要介绍一点Vim的配置,想要学习更多的Vim的功能请大家自行百度。Vim Tutor是Vim自带的教学程序,只需在Shell下输入vimtutor即可进行学习。

    相关文章

      网友评论

      • 叶儿爱琵琶:亲,可以咨询下,自己编译安装的问题吗?
        叶儿爱琵琶:@zhengjie 那谢谢你回复 了,我已经解决了!
        zhengjie:@念紑依 不好意思,最近很忙,一直没有上来,有什么可以帮得上的尽管说。
      • Jummy_Sweet:能否同时支持py2跟py3
        zhengjie:@Jummy_Sweet 是否同时支持py2和py3,主要是看你的vim,使用vim --version命令看一下,里面会详细的显示你的vim支持的语言,前面有+号就是支持,-号就是不支持,如需同时支持py2和py3的vim,可能需要你自己编译安装vim。
      • 真的不是爬虫:真好在折腾vim的插件,感谢楼主分享!

      本文标题:vim的安装、配置及python3开发环境配置

      本文链接:https://www.haomeiwen.com/subject/qtxudxtx.html