本文給大家介紹的是在Ubuntu 18.04 LTS系統(tǒng)下使用Vim配置Python開發(fā)環(huán)境的詳細(xì)步驟,對(duì)初學(xué)者非常實(shí)用,有需要的小伙伴可以參考下。Vim是Linxu終端最方便的編輯器,有一定的通用性。下面就用Vim打造了屬于自己的Python IDE,然后進(jìn)行配置。
1、安裝 Python
Ubuntu 18.04 LTS 默認(rèn)安裝 python。
2、安裝 Vim
Ubuntu 18.04 LTS Desktop初始安裝自帶了vi,未帶 vim 需要安裝,已安裝的略過。
sudo apt install vim
3、插件安裝
標(biāo)簽導(dǎo)航(tagbar和ctags)、語(yǔ)法檢測(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。
運(yùn)行這個(gè)命令就開始自行安裝我們之前指定的各個(gè)插件了。這個(gè)過程需要連網(wǎng),下載并安裝好各個(gè)插件之后會(huì)提示Done!
注意:由于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)
你可以根據(jù)自己的喜好設(shè)置快捷鍵,<leader>是按鍵,根據(jù)我的配置。在Vim的正常模式下:
- 依次按鍵tb,就會(huì)調(diào)出標(biāo)簽導(dǎo)航;
- 依次按鍵ff,就會(huì)調(diào)出文件搜索;
- 依次按鍵nt,就會(huì)調(diào)出目錄導(dǎo)航。
2、運(yùn)行配置
這些基礎(chǔ)配置已經(jīng)完成,但是我想在Vim下像在IDE中一樣,按一個(gè)鍵就運(yùn)行當(dāng)前編輯的Python文件,并查看運(yùn)行結(jié)果,這可以???到嗎?
沒問題!
在~/.vimrc最后一行追擊代碼如下:
" 運(yùn)行文件
map <F5> :w<cr>:r!python3 %<cr>
上述代碼的意思就是,在Vim的正常模式下,按F5就會(huì)保存文件并使用Python3運(yùn)行當(dāng)前文件,并將結(jié)果輸出到當(dāng)前界面。
注意,:!python3表示運(yùn)行系統(tǒng)命令Python3,如果你沒有安裝Python2和Python3共存,此處只寫python即可。
這樣我們就可以邊編輯邊查看運(yùn)行結(jié)果了,見本文最上面截圖。
運(yùn)行完之后,依然可以在Vim的正常模式下按u,撤回這個(gè)輸出操作,這樣輸出結(jié)果就撤回了,我們就可以繼續(xù)編寫自己的代碼了。
總結(jié)
Vim很好用,很強(qiáng)大,用上了有種愛不釋手的感覺。插件不用安裝太多,適合自己的就行,根據(jù)自己的需求進(jìn)行配置,編輯快捷鍵,真的很方便。
你也來配置一個(gè)屬于自己的Vim吧!