轉載:簡書 vim環境配置 做者 fromradio 留做備忘 如侵權請聯繫刪除

爲Python建立Vim環境

144
做者 fromradio
2016.08.04 11:36* 字數 1766 閱讀 504評論 0

大部分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界面.png

如今開始配置所須要的vim插件,檢查vim是否支持Python,在vim環境下輸入python

:echo has('python') || has('python3')

若是結果爲1則代表支持,不然須要檢查當前Python是否正確安裝。linux

vim擁有很強的可擴展性,所以不少開發者爲方便本身的代碼編寫開發了不少小工具,使得vim像一個現代ide同樣工做。因此,首先咱們須要一個插件管理器。git

Vundle

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功能

學習vim的組合件

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'

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=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\+$/

UTF8支持

這個中文編輯的時候比較重要,添加

set encoding=utf-8

語法檢查和高亮

安裝語法檢測插件和PEP8檢查工具

Plugin 'scrooloose/syntastic' Plugin 'nvie/vim-flake8'

開啓Python的代碼高亮策略

let python_highlight_all=1 syntax on

顏色方案

這裏我使用的是solarizedZenburn

Plugin 'jnurmine/Zenburn' Plugin 'altercation/vim-colors-solarized'

超級搜索

ctrlP工具能夠幫助用戶在vim環境裏面搜索幾乎全部東西

Plugin 'kien/ctrlp.vim'

如今能夠經過快捷鍵Ctrl-p來開啓搜索,會把和你輸入最類似的返回給你,其次這個工具還會搜索標記。

Git集成

插件vim-fugitive幫助用戶能夠在vim環境裏面執行git命令,具體參見VIMcasts

總結

筆者這幾天爲了之後有個更好用的線上代碼編輯環境測試了很久,當前的這套流程是如今使用的一套,比較好用,可是因爲線上機的各類問題,最好的一個插件YouCompletMe沒有安裝成功,暫時放棄了,有興趣的讀者在本身的機器上面必定要安裝這個插件,至關好用。

資源集合

  1. VIM Tutor
  2. VIMcasts
  3. Official Vim docs
  4. Open Vim
  5. Learn Vimscript the Hard Way
相關文章
相關標籤/搜索