天天看點

vim配置python開發環境_為Python建立Vim環境

大部分Python使用者可能習慣使用Sublime Text 3等筆記本式的編輯器。然而實際工作環境中有可能遇到需要在無GUI環境下工作的情況,比如需要登入到虛機上進行調試等。此時vim成為了常用的編輯器選擇,是以如何使得vim變得心應手成為一個重要的問題。

第一個問題是vim版本的問題,筆者工作環境中的red hat 6版本的預設vim為7.2,不能支援後面需要用到的YouCompleMe插件。是以,我們需要安裝vim7.4版本。首先解除安裝目前vimyum erase vim-common

這會連同相關的vim-enhance一同解除安裝,然後前往下載下傳vim7.4的相關rpm:

上載到伺服器後使用yum install -y

指令分别安裝三個包即可,此時vim的版本為7.4了。

vim配置python開發環境_為Python建立Vim環境

vim界面.png

現在開始配置所需要的vim插件,檢查vim是否支援Python,在vim環境下輸入:echo has('python') || has('python3')

如果結果為1則表明支援,否則需要檢查目前Python是否正确安裝。

vim擁有很強的可擴充性,是以很多開發者為友善自己的代碼編寫開發了很多小工具,使得vim像一個現代ide一樣工作。是以,首先我們需要一個插件管理器。

Vundle

vim有一些插件管理器,這裡推薦使用Vundle作為插件管理器。可以将其想象成Python中間的pip包管理器,讓包的安裝和更新更加簡單。

使用如下指令安裝: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功能

學習vim的組合件

vim最重要的一個特性就是完全抛棄了滑鼠,是以有很多快捷鍵幫助程式員快速編寫代碼,是以第一步是去熟悉組合鍵。

分割目前視窗

使用指令:sv 會水準分割目前視窗,并将新檔案打開在目前檔案的下方,類似的,使用指令:vs 會豎直分割視窗并在右側打開新檔案。

快捷鍵預設為Ctrl-w+Ctrl-j,k,l,h,我将其remap到沒有Ctrl-w的情形nnoremap

nnoremap

nnoremap

nnoremap

快捷鍵變為:Ctrl-j 跳到下方視窗

Ctrl-k 跳到上方視窗

Ctrl-l 跳到右方視窗

Ctrl-h 跳到左方視窗

代碼折疊

大多數IDE支援使用者折疊函數或者類定義,首先開啟這個功能" 開啟折疊功能 "set foldmethod=indentset foldlevel=99

折疊的快捷鍵為za,如果覺得不友善,可以将其對應到其他鍵位。

注意vim自帶的折疊功能是根據縮進來的,有時候不那麼好使,推薦使用插件SimpylFold。Plugin 'tmhedberg/SimpylFold'

Python縮進

在實作部分我們希望有兩點,一是遵從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=2Plugin 'vim-scripts/indentpython`

标記不必要的空格

有時候我們需要避免一些額外的空格,希望編輯器能對其有一些顯示,首先安裝插件vim-bad-whitespacePlugin 'bitc/vim-bad-whitespace'

将被認為是壞空格的地方标記出來au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/

UTF8支援

這個中文編輯的時候比較重要,添加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來開啟搜尋,會把和你輸入最相似的傳回給你,其次這個工具還會搜尋标記。

Git內建

插件vim-fugitive幫助使用者可以在vim環境裡面執行git指令,具體參見VIMcasts。

總結

筆者這幾天為了以後有個更好用的線上代碼編輯環境測試了好久,目前的這套流程是現在使用的一套,比較好用,但是由于線上機的各種問題,最好的一個插件YouCompletMe沒有安裝成功,暫時放棄了,有興趣的讀者在自己的機器上面一定要安裝這個插件,相當好用。

資源集合

作者:fromradio

連結:https://www.jianshu.com/p/83579afd5647