vim的安裝、配置及python3開發(fā)環(huán)境配置

主要為大家介紹一下vim的安裝、配置及python3開發(fā)環(huán)境配置,文中經(jīng)驗一部分取自網(wǎng)上,一部分為自己的經(jīng)驗。希望能幫助到有需要的朋友。
首先為大家介紹一下系統(tǒng)情況:

  • Ubuntu16.04
  • Python3.5

一、安裝vim

如果系統(tǒng)中已安裝了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開發(fā)的最佳搭檔。

  1. 在安裝YCM前,還需要先安裝一些必須的軟件:
    sudo apt install python-dev python3-dev cmake
  2. 接著在~/.vimrc上文的空白處添加YCM配置:
    Plugin 'Valloric/YouCompleteMe'
  3. 然后運行vim在normal模式下運行:PluginInstall,系統(tǒng)即會將YCM安裝到~/.vim/bundle/目錄下。
    這里需要特別提醒大家的是YCM的體積比較大,等待的時間會比較長,有時會出錯退出安裝,這時在運行vim時,在窗口下部會出現(xiàn)紅色的YouCompleteMe unavailable: No module named 'future'的提示。這是由于YCM沒有下載完畢所造成的,這時可以換用Git來繼續(xù)安裝YCM:
    在Shell下輸入cd ~/.vim/bundle/YouCompleteMe進入YCM目錄,然后輸入
    git submodule update --init --recursive命令,如下載過程中又出現(xiàn)中斷出錯,就繼續(xù)運行此命令。
  4. 在克隆完成之后就需要進行安裝:
    如需要C語言家族支持就在終端里輸入以下命令:
    ./install.py --clang-completer
    如不需要C語言家族支持的話直接輸入以下命令:
    ./install.py
    如需C#語言支持的話可在運行./install.py命令時添加--cs-completer參數(shù)。
    如需Go語言支持的話可在運行./install.py命令時添加--go-completer參數(shù)。
    如需Java語言支持的話可在運行./install.py命令時添加--java-completer參數(shù)。
    我們也可以使用簡單一點的方法,直接添加--all參數(shù)來添加全語言支持。
    ./install.py --all
    (注:最新更新了ubuntu18.04系統(tǒng)后發(fā)現(xiàn)YCM無法工作了,究其原因應該是由于ubuntu18取消了python2的默認安裝支持發(fā)生的。解決辦法很簡單:python3 install.py --all。即可讓YCM恢復工作了。)
  5. 上述命令運行時根據(jù)你的機器環(huán)境可能會提示你先執(zhí)行一個Git命令克隆一些必須的庫,按照提示運行就可以了。克隆完成之后再執(zhí)行./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. 以下配置你可以根據(jù)自己需求進行配置:
    set completeopt-=preview
    補全內(nèi)容不以分割子窗口形式出現(xiàn),只顯示補全列表
    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環(huán)境

Vim下的插件非常之多,在這里就簡要給大家介紹了以上兩個,你可以上網(wǎng)去搜索更多你感興趣的插件,安裝完插件后我們就要來對Vim進行配置,使其更符合我們的工作習慣。對Vim進行配置是通過.vimrc文件進行的。下面貼出的是我使用的vim配置文件,有需要的朋友可以看一看。

"顯示相關
"set shortmess=atI  "不顯示幫助烏干達的提示
colorscheme delek "設置配色方案
set showcmd "輸入的命令顯示出來
syntax on "語法高亮
set tabstop=4  "Tab鍵的寬度設為4
set softtabstop=4
set shiftwidth=4  "統(tǒng)一縮進為4
set autoindent  "開啟自動縮進,保持縮進值與上一行相等
autocmd InsertLeave * se nocul "用淺色高亮當前行
autocmd InsertEnter * se cul "用淺色高亮當前行
set ruler "顯示當前光標行列位置
set mouse=a "支持鼠標
set laststatus=2 "顯示狀態(tài)欄(默認值為1,無法顯示狀態(tài)欄)
if has('gui_running')
    set t_Co=256
endif
set guifont=Mono
set autoread "當文件在外部修改時,vim自動更新載入
set ignorecase "搜索時忽略大小寫
set foldmethod=syntax
set nofoldenable "此兩行為折疊代碼
"自定義鍵映射
"實現(xiàn)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("%")
"最前面是數(shù)字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時的那個狀態(tài),輸入:colorscheme <Tab>就可以在切換使用的配色方案,但這種方法對于配色方案的修改只是一次性的,需要永久更換配色方案的話,就請記下配色方案的名字,將.vimrc中的配色方案名稱更改就可以了。如果對于自帶配色方案不滿意的話,也可以自行上網(wǎng)下載一些大神配置好配色方案。將下載好的配色方案復制到/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' ,具體內(nèi)容如下,可自行創(chuàng)建:
#!/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即可進行學習。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容