大部分Python使用者可能習慣使用Sublime Text 3等筆記本式的編輯器。然而實際工做環境中有可能遇到須要在無GUI環境下工做的狀況,好比須要登陸到虛機上進行調試等。此時vim成爲了經常使用的編輯器選擇,因此如何使得vim變駕輕就熟成爲一個重要的問題。javascript
第一個問題是vim版本的問題,筆者工做環境中的red hat 6版本的默認vim爲7.2,不能支持後面須要用到的YouCompleMe
插件。所以,咱們須要安裝vim7.4版本。首先卸載當前vimphp
yum erase vim-common
這會連同相關的vim-enhance
一同卸載,而後前往下載vim7.4的相關rpm:css
上載到服務器後使用html
yum install -y
指令分別安裝三個包便可,此時vim的版本爲7.4了。java
如今開始配置所須要的vim插件,檢查vim是否支持Python,在vim環境下輸入python
:echo has('python') || has('python3')
若是結果爲1
則代表支持,不然須要檢查當前Python是否正確安裝。linux
vim
擁有很強的可擴展性,所以不少開發者爲方便本身的代碼編寫開發了不少小工具,使得vim像一個現代ide同樣工做。因此,首先咱們須要一個插件管理器。git
vim
有一些插件管理器,這裏推薦使用Vundle做爲插件管理器。能夠將其想象成Python中間的pip包管理器,讓包的安裝和更新更加簡單。程序員
使用以下命令安裝:github
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
這個命令將Vundle插件管理器下載到vim
的bundles目錄下,如今能夠經過編輯~/.vimrc
配置文件來擴展vim
了。(通常使用用戶的配置文件便可,整個vim
的配置文件在目錄/etc/vimrc
裏面)
首先建立這個文件
touch ~/.vimrc
而後編輯進行配置,如下是一些必須的配置項
" 必須項(因爲簡書不支持vim環境,會在註釋末添加一個雙引號,真實環境只需句首便可)" set nocompatible filetype off " 在運行目錄中添加Vundle " set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 首先讓Vundle管理Vundle,必須 " Plugin 'gmarik/Vundle.vim' " 在這裏添加你須要的插件 " call vundle#end() filetype plugin indent on
而後保存關閉配置文件,隨便用vim
打開一個文件,輸入指令
:PluginInstall
這是Vundle會自動下載,安裝,更新全部配置文件裏面的插件。
vim
最重要的一個特性就是徹底拋棄了鼠標,因此有不少快捷鍵幫助程序員快速編寫代碼,因此第一步是去熟悉組合鍵。
使用指令:sv <filename>
會水平分割當前窗口,並將新文件打開在當前文件的下方,相似的,使用指令:vs <filename>
會豎直分割窗口並在右側打開新文件。
快捷鍵默認爲Ctrl-w
+Ctrl-j,k,l,h
,我將其remap到沒有Ctrl-w
的情形
nnoremap <C-J> <C-W><C-J> nnoremap <C-K> <C-W><C-K> nnoremap <C-L> <C-W><C-L> nnoremap <C-H> <C-W><C-H>
快捷鍵變爲:
Ctrl-j
跳到下方窗口Ctrl-k
跳到上方窗口Ctrl-l
跳到右方窗口Ctrl-h
跳到左方窗口大多數IDE支持用戶摺疊函數或者類定義,首先開啓這個功能
" 開啓摺疊功能 " set foldmethod=indent set foldlevel=99
摺疊的快捷鍵爲za
,若是以爲不方便,能夠將其對應到其餘鍵位。
注意vim
自帶的摺疊功能是根據縮進來的,有時候不那麼好使,推薦使用插件SimpylFold。
Plugin 'tmhedberg/SimpylFold'
在實現部分咱們但願有兩點,一是聽從PEP8標準,二是更好地自動縮進。在vimrc
中添加:
au BufNewFile,BufRead *.py
\ set tabstop=4 | \ set tabstop=4 | \ set softtabstop=4 | \ set shiftwidth=4 | \ set textwidth=79 | \ set expandtab | \ set autoindent | \ set fileformat=unix
這讓*.py
文件的縮進爲標準的四個空格,單行不會超過80個字符,文件儲存爲unix格式,不會產生轉換的問題。
針對其餘文件,咱們能夠定義其格式,好比javascript
中習慣兩個空格爲縮進,所以有
au BufNewFile,BufRead *.js, *.html, *.css \ set tabstop=2 | \ set softtabstop=2 | \ set shiftwidth=2
自動縮進功能咱們使用插件indentpython.vim
Plugin 'vim-scripts/indentpython`
有時候咱們須要避免一些額外的空格,但願編輯器能對其有一些顯示,首先安裝插件vim-bad-whitespace
Plugin 'bitc/vim-bad-whitespace'
將被認爲是壞空格的地方標記出來
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
這個中文編輯的時候比較重要,添加
set encoding=utf-8
安裝語法檢測插件和PEP8檢查工具
Plugin 'scrooloose/syntastic' Plugin 'nvie/vim-flake8'
開啓Python的代碼高亮策略
let python_highlight_all=1 syntax on
Plugin 'jnurmine/Zenburn' Plugin 'altercation/vim-colors-solarized'
ctrlP工具能夠幫助用戶在vim
環境裏面搜索幾乎全部東西
Plugin 'kien/ctrlp.vim'
如今能夠經過快捷鍵Ctrl-p
來開啓搜索,會把和你輸入最類似的返回給你,其次這個工具還會搜索標記。
插件vim-fugitive幫助用戶能夠在vim
環境裏面執行git
命令,具體參見VIMcasts。
筆者這幾天爲了之後有個更好用的線上代碼編輯環境測試了很久,當前的這套流程是如今使用的一套,比較好用,可是因爲線上機的各類問題,最好的一個插件YouCompletMe
沒有安裝成功,暫時放棄了,有興趣的讀者在本身的機器上面必定要安裝這個插件,至關好用。