vim的配置是在用戶主目錄下的 ~/.vimrc 文件中完成的,若是沒有的話,須要本身新建一下:javascript
cd ~ touch .vimrc
首先作些簡單的配置:html
set nocompatible "關閉與vi的兼容模式 set number "顯示行號 set nowrap "不自動折行 set showmatch "顯示匹配的括號 set scrolloff=3 "距離頂部和底部3行" set encoding=utf-8 "編碼 set fenc=utf-8 "編碼 set mouse=a "啓用鼠標 set hlsearch "搜索高亮 syntax on "語法高亮
爲py文件添加下支持pep8風格的配置:java
au BufNewFile,BufRead *.py \ set tabstop=4 "tab寬度 \ set softtabstop=4 \ set shiftwidth=4 \ set textwidth=79 "行最大寬度 \ set expandtab "tab替換爲空格鍵 \ set autoindent "自動縮進 \ set fileformat=unix "保存文件格式
vim在編輯的時候就能夠打開多個文件:python
:vs 或者 :vsplit 將當前窗口豎直分割,並在上面新窗口中顯示當前文件git
:vs filename 將當前窗口豎直分割,新文件在新窗口中顯示github
:sp 或者:sv或者:split 將當前窗口水平分割,並在左邊新窗口中顯示當前文件ubuntu
:sp filename 將當前窗口豎直分割,新文件在左邊新窗口中顯示vim
:new 新建文件並豎直分割bash
:vnew 新建文件並水平分割app
若是想讓新窗口在右邊或者下方打開,添加配置:
set splitbelow set splitright
在窗口之間切換能夠用鼠標,若是不想用鼠標,切換按鍵以下:
Ctrl-w-j
切換到下方的分割窗口Ctrl-w-k
切換到上方的分割窗口Ctrl-w-l
切換到右側的分割窗口Ctrl-w-h
切換到左側的分割窗口以爲三個按鍵多的話能夠設置快捷鍵:
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>
這樣就不用按w鍵了。
當代碼行數不少的時候,代碼摺疊是很必須的:
set foldmethod=indent set foldlevel=99
使用zc按鍵來建立摺疊,使用za來打開或者關閉摺疊。
za常常會誤輸入,能夠用空格鍵來替代za:
nnoremap <space> za
若是想直接在vim中執行python代碼,能夠添加(來自https://www.zhihu.com/question/20271508):
map <F5> :call RunPython()<CR> func! RunPython() exec "W" if &filetype == 'python' exec "!time python2.7 %" endif endfunc
這樣,按F5鍵python代碼就能夠自動執行了
vim插件中最主要的就是vundle了,vundle用來管理vim的其它插件
Vundle 是 Vim bundle 的簡稱,使用git來管理vim插件,有了它,安裝其它插件就方便不少。
項目地址https://github.com/VundleVim/Vundle.vim。
首先下載源碼:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
若是~/.vim/bundle目錄不存在,則新建目錄:
cd ~ mkdir .vim cd .vim mkdir bundle
而後將下列配置放在.vimrc文件的開頭:
set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required
若是想下載某個插件,好比自動縮進indentpython.vim插件,須要將
Plugin 'vim-scripts/indentpython.vim'
置於call vundle#begin()和call vundle#end()之間,保存配置後在vim中執行
:PluginInstall
便可以自動下載indentpython.vim插件了。
bundle能夠管理下載幾種不一樣的插件,方式以下:
github上的插件 Plugin 'tpope/vim-fugitive' 來自於http://vim-scripts.org/vim/scripts.html的插件 Plugin 'L9' 非github上的git插件 Plugin 'git://git.wincent.com/command-t.git' 本地插件 Plugin 'file:///home/gmarik/path/to/plugin' " The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. " Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} 有舊插件的狀況下,下載新的插件並重命名以免衝突 Plugin 'ascenator/L9', {'name': 'newL9'}
下載方式除了在vim中運行:PluginInstall外,還能夠在命令行中運行:
vim +PluginInstall +qall
其它經常使用的命令:
:PluginList - lists configured plugins :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate :PluginSearch foo - searches for foo; append `!` to refresh local cache :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
很是好用的自動補全插件,就是比較重。
官網地址:http://valloric.github.io/YouCompleteMe/
github地址:https://github.com/Valloric/YouCompleteMe
YouCompleteMe安裝後還須要手動編譯,而後再在.vimrc中配置。
在ubuntu中使用,首先準備一些工具:
sudo apt-get install build-essential cmake
sudo apt-get install python-dev python3-dev
使用vundle安裝:
Plugin 'Valloric/YouCompleteMe'
編譯:
cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer
參數 --clang-completer是爲了加上C系列語言的自動補全,也能夠不加:
cd ~/.vim/bundle/YouCompleteMe ./install.py
耐心等待吧,要花很長時間...
複製一下默認配置文件到用戶主目錄:
cp third_party/ycmd/examples/.ycm_extra_conf.py ~/
YCM經常使用的一些選項,可根據我的喜愛調整:
let g:ycm_min_num_of_chars_for_completion = 2 "開始補全的字符數" let g:ycm_python_binary_path = 'python' "jedi模塊所在python解釋器路徑" let g:ycm_seed_identifiers_with_syntax = 1 "開啓使用語言的一些關鍵字查詢" let g:ycm_autoclose_preview_window_after_completion=1 "補全後自動關閉預覽窗口"
代碼跳轉:
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
開關YCM:
let g:ycm_auto_trigger = 0 "turn off let g:ycm_auto_trigger = 1 "turn on
YouCompleteMe其實是使用jedi-vim來補全python代碼的,若是以爲YCM實在過重,可使用支持vim8的maralla/completor.vim來補全代碼:
下載:
Plugin 'maralla/completor.vim'
下載jedi:
pip install jedi
配置:
let g:completor_python_binary = '/path/to/python/with/jedi/installed'
設置起來比YCM簡單不少了。
寫python代碼,自動縮進是必須的,可使用indentpython.vim插件:
Plugin 'vim-scripts/indentpython.vim'
安裝syntastic插件,每次保存文件時Vim都會檢查代碼的語法:
Plugin 'vim-syntastic/syntastic'
添加flake8代碼風格檢查:
Plugin 'nvie/vim-flake8'
運行F7就能夠進行flake8檢查了。
solarized配色方案已經流行好久了,github地址https://github.com/altercation/vim-colors-solarized。
手動下載:
$ cd ~/.vim/bundle $ git clone git://github.com/altercation/vim-colors-solarized.git $ mv vim-colors-solarized ~/.vim/bundle/
或者vundle下載:
Plugin 'altercation/vim-colors-solarized'
solarized有dark和light兩種配色,配置:
syntax enable set background=light or dark colorscheme solarized
也能夠根據gui模式和終端模式進行切換:
if has('gui_running') set background=light else set background=dark endif
另一種配色Zenburn方案:
Plugin 'jnurmine/Zenburn'
兩種配色切換:
if has('gui_running') set background=dark colorscheme solarized else colorscheme Zenburn endif
給vim添加一個樹形目錄,地址https://github.com/scrooloose/nerdtree。
下載:
Plugin 'scrooloose/nerdtree'
添加開關樹形目錄的快捷鍵:
map <C-n> :NERDTreeToggle<CR>
Ctrl+n就能夠開啓目錄了。
設置忽略.pyc文件:
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
爲nerdtree添加git支持:
Plugin 'Xuyuanp/nerdtree-git-plugin'
若是你想用tab鍵:
Plugin 'jistr/vim-nerdtree-tabs'
美化狀態欄,能夠顯示當前的虛擬環境、Git分支、正在編輯的文件等信息。
Plugin 'Lokaltog/vim-powerline'
縮進指示線,地址https://github.com/Yggdroot/indentLine。
安裝:
Plugin 'Yggdroot/indentLine'
開關:
:IndentLinesToggle
python是靠代碼縮進來判斷代碼塊的,縮進指示線仍是很方便的。
自動格式化工具,安裝後運行:Autopep8就能夠自動依照pep8的標準自動格式化代碼。
地址https://github.com/Yggdroot/indentLine。
首先安裝autopep8:
$ pip install autopep8
Plugin 'tell-k/vim-autopep8'
能夠設置快捷鍵F8代替:Autopep8:
autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>
自動補全括號和引號等,地址https://github.com/jiangmiao/auto-pairs。
Plugin 'jiangmiao/auto-pairs'
搜索插件,在vim normal模式下,按下ctrl+p,而後輸入你要尋找的文件就好了。
地址https://github.com/kien/ctrlp.vim。
Plugin 'kien/ctrlp.vim'
搜索引擎使用了the_silver_searcher
apt-get install silversearcher-ag or brew install the_silver_searcher
插件
Plugin 'rking/ag.vim'
使用
:Ag [options] {pattern} [{directory}]
git集成插件,能夠在vim中運行git命令,https://github.com/tpope/vim-fugitive。
Plugin 'tpope/vim-fugitive'