VIM配置python編程環(huán)境

插件安裝

標(biāo)簽導(dǎo)航(tagbar和ctags)、語法檢測(cè)(syntastic)、文件搜索(ctrlp)、目錄樹導(dǎo)航(nerdtree)、狀態(tài)欄美化(vim-powerline)、主題風(fēng)格(solarized)、python相關(guān)(jedi-vim和python-mode)、括號(hào)匹配高亮(rainbow_parentheses)、可視化縮進(jìn)(vim-indent-guides)??芍^應(yīng)有盡有。

還有一個(gè)最重要的就是插件管理工具vundle。

安裝vundle

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

安裝好了vundle,需要在~/.vimrc配置文件中添加vundle支持。

配置 vim

vim的配置是在用戶主目錄下的 ~/.vimrc 文件中完成的,如果沒有的話,需要自己新建一下。

編輯 ~/.vimrc 文件,寫入以下內(nèi)容:

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

if filereadable(expand("~/.vimrc.bundles"))
  source ~/.vimrc.bundles
endif

為了防止配置文件太亂,我們可以通過~/.vimrc.bundles管理我們安裝的插件。

.vimrc.bundles配置文件

首先創(chuàng)建文件~/.vimrc.bundles,然后添加代碼如下:

if &compatible
  set nocompatible
end

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" Let Vundle manage Vundle
Bundle 'gmarik/vundle'

" Define bundles via Github repos
" 標(biāo)簽導(dǎo)航
Bundle 'majutsushi/tagbar'
Bundle 'vim-scripts/ctags.vim'
" 靜態(tài)代碼分析
Bundle 'scrooloose/syntastic'
" 文件搜索
Bundle 'kien/ctrlp.vim'
" 目錄樹導(dǎo)航
Bundle "scrooloose/nerdtree"
" 美化狀態(tài)欄
Bundle "Lokaltog/vim-powerline"
" 主題風(fēng)格
Bundle "altercation/vim-colors-solarized"
" python自動(dòng)補(bǔ)全
Bundle 'davidhalter/jedi-vim'
Bundle "klen/python-mode"
" 括號(hào)匹配高亮
Bundle 'kien/rainbow_parentheses.vim'
" 可視化縮進(jìn)
Bundle 'nathanaelkane/vim-indent-guides'
if filereadable(expand("~/.vimrc.bundles.local"))
  source ~/.vimrc.bundles.local
endif

filetype on

如上述代碼所示,我們通過Bundle指定各個(gè)插件在Github的地址,填寫規(guī)則是"用戶名/倉(cāng)庫(kù)名"。書寫規(guī)則有三種,這里使用的是最常見的一種,其它書寫方法這里就不說了。

安裝插件

我們已經(jīng)指定好了各個(gè)插件的路徑,接下里就是安裝各個(gè)插件了。在shell中輸入vim,進(jìn)入命令行模式輸入BundleInstall。

注意:由于tagbar依賴于ctags,所以我們還需要用指令安裝ctags:

sudo apt-get install ctags

插件配置

1、基礎(chǔ)配置

已經(jīng)安裝好了各個(gè)插件,接下里就可以直接用了嗎?答案是否定的,我們還需要繼續(xù)對(duì)自己安裝的插件進(jìn)行配置。配置這里也很簡(jiǎn)單,下面是我的配置,編寫~/.vimrc:

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

if filereadable(expand("~/.vimrc.bundles"))
  source ~/.vimrc.bundles
endif

" tagbar標(biāo)簽導(dǎo)航
nmap <Leader>tb :TagbarToggle<CR>
let g:tagbar_ctags_bin='/usr/bin/ctags'
let g:tagbar_width=30
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()
let g:jedi#auto_initialization = 1

" 主題 solarized
let g:solarized_termtrans=1
let g:solarized_contrast="normal"
let g:solarized_visibility="normal"
" 配色方案
set background=dark
set t_Co=256
colorscheme solarized

" 目錄文件導(dǎo)航NERD-Tree
" \nt 打開nerdree窗口,在左側(cè)欄顯示
nmap <leader>nt :NERDTree<CR>
let NERDTreeHighlightCursorline=1
let NERDTreeIgnore=[ '\.pyc$', '\.pyo$', '\.obj$', '\.o$', '\.so$', '\.egg$', '^\.git$', '^\.svn$', '^\.hg$' ]
let g:netrw_home='~/bak'
"close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | end

" ctrlp文件搜索
" 打開ctrlp搜索
let g:ctrlp_map = '<leader>ff'
let g:ctrlp_cmd = 'CtrlP'
" 相當(dāng)于mru功能,show recently opened files
map <leader>fp :CtrlPMRU<CR>
" set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux"
let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn|rvm)$',
    \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz)$',
    \ }
"\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1

" vim-powerline美化狀態(tài)
" let g:Powerline_symbols = 'fancy'
let g:Powerline_symbols = 'unicode'

" 括號(hào)匹配高亮
let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['black',       'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]
let g:rbpt_max = 40
let g:rbpt_loadcmd_toggle = 0

" 可視化縮進(jìn)
let g:indent_guides_enable_on_vim_startup = 0  " 默認(rèn)關(guān)閉
let g:indent_guides_guide_size            = 1  " 指定對(duì)齊線的尺寸
let g:indent_guides_start_level           = 2  " 從第二層開始可視化顯示縮進(jìn)

" python 在vim中直接調(diào)試
map <F5> :w<cr>:r!python3 %<cr>

操作::::::

依次按鍵\tb,就會(huì)調(diào)出標(biāo)簽導(dǎo)航;
依次按鍵\ff,就會(huì)調(diào)出文件搜索;
依次按鍵\nt,就會(huì)調(diào)出目錄導(dǎo)航;
ctrl+ww 切換窗口;
u:撤回;
o:插入行;
i:insert;
a:光標(biāo)后追加
dd:刪除;
ndd:刪除以當(dāng)前行開始的n行
yy:復(fù)制;
nyy:復(fù)制以當(dāng)前行開始的n行
p:粘貼;
全部刪除:按esc后,然后dG
全部復(fù)制:按esc后,然后ggyG
vi設(shè)置自動(dòng)縮進(jìn):set smartindent
vi設(shè)置顯示行號(hào):set number 或 set nu
x:刪除當(dāng)前光標(biāo)所在字符
n1,n2,filename :將n1行、n2行數(shù)據(jù)復(fù)制到filename文件
ctrl+f ctrl+b 上下一屏
ctrl+u ctrl+d 上下半屏

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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