主要为大家介绍一下vim的安装、配置及python3开发环境配置,文中经验一部分取自网上,一部分为自己的经验。希望能帮助到有需要的朋友。
首先为大家介绍一下系统情况:
- Ubuntu16.04
- Python3.5
一、安装vim
如果系统中已安装了vim,需要检查一下vim是否满足需求:
- 版本大于7.3
- 支持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开发的最佳搭档。
- 在安装YCM前,还需要先安装一些必须的软件:
sudo apt install python-dev python3-dev cmake
- 接着在
~/.vimrc
上文的空白处添加YCM配置:
Plugin 'Valloric/YouCompleteMe'
- 然后运行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
命令,如下载过程中又出现中断出错,就继续运行此命令。 - 在克隆完成之后,输入:
./install.py --clang-completer
- 然后再在文件夹里执行./install.py安装,根据你的机器环境可能会提示你先执行一个Git命令克隆一些必须的库,按照提示运行就可以了。克隆完成之后再执行./install.py。
- 运行完毕后可在.vimrc文件中添加以下配置来让完成补全之后preview窗口自动消失:
let g:SimpyIFold_docstring_preview=1
- 复制.ycm_extra_conf.py文件至~/.vim目录下
cp ~/.vim/bundle/YoucompleteMe/third_parth/ycmd/examples/.ycm_extra_conf.py ~/.vim/
- 在.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解释器的版本位置。
- 以下配置你可以根据自己需求进行配置:
set completeopt-=preview
补全内容不以分割子窗口形式出现,只显示补全列表
let g:ycm_autoclose_preview_window_after_completion=1
完成操作后自动补全窗口不消失
四、安装NERDTree插件
使用NERDTree插件可以在Vim窗口中显示一个文件树。
- ~/.vimrc文件空白处添加
Plugin 'scrooloose/nerdtree'
- 运行Vim在normal模式下运行
:PluginInstall
- 打开.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即可进行学习。
网友评论