主要为大家介绍一下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() " requiredfiletype 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 "统一缩进为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
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
热门评论
楼主写的很棒,最近在学习vim,谢谢楼主的分享?
配置这东西纯粹是装逼浪费时间,有配置这玩意儿的时间,还不如用vscode,完美支持三大操作系统,省了多少烦恼。