继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

千万里不及你
关注TA
已关注
手记 313
粉丝 51
获赞 237

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

  • Ubuntu16.04

  • Python3.5

一、安装vim

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

  1. 版本大于7.3

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

    https://img3.mukewang.com/5d57f445000140bf07580552.png

    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()            " requiredfiletype 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  "统一缩进为4set 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
endifset guifont=Monoset autoread "当文件在外部修改时,vim自动更新载入
set ignorecase "搜索时忽略大小写set foldmethod=syntaxset 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

    https://img3.mukewang.com/5d57f44d000118de07840204.png

    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
链接:https://www.jianshu.com/p/d8ea4bbff59c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP

热门评论

楼主写的很棒,最近在学习vim,谢谢楼主的分享?

配置这东西纯粹是装逼浪费时间,有配置这玩意儿的时间,还不如用vscode,完美支持三大操作系统,省了多少烦恼。

查看全部评论