天天看點

vim配置python開發環境_Ubuntu 18.04下使用Vim配置Python開發環境

本文給大家介紹的是在Ubuntu18.04 LTS系統下使用Vim配置Python開發環境的詳細步驟,對初學者非常實用,有需要的小夥伴可以參考下。Vim是Linxu終端最友善的編輯器,有一定的通用性。下面就用Vim打造了屬于自己的Python IDE,然後進行配置。

1、安裝 Python

Ubuntu 18.04 LTS 預設安裝 python。

2、安裝 Vim

Ubuntu 18.04 LTS Desktop初始安裝自帶了vi,未帶 vim 需要安裝,已安裝的略過。

sudo apt install vim

3、插件安裝

标簽導航(tagbar和ctags)、文法檢測(syntastic)、檔案搜尋(ctrlp)、目錄樹導航(nerdtree)、狀态欄美化(vim-powerline)、主題風格(solarized)、python相關(jedi-vim和python-mode)、括号比對高亮(rainbow_parentheses)、可視化縮進(vim-indent-guides)。可謂應有盡有。

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

安裝vundle

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

安裝好了vundle,需要在~/.vimrc配置檔案中添加vundle支援。

配置 vim

vim的配置是在使用者主目錄下的 ~/.vimrc 檔案中完成的,如果沒有的話,需要自己建立一下。

編輯 ~/.vimrc 檔案,寫入以下内容:filetype offset rtp+=~/.vim/bundle/vundle/call vundle#rc()if filereadable(expand("~/.vimrc.bundles")) source ~/.vimrc.bundlesendif

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

.vimrc.bundles配置檔案

首先建立檔案~/.vimrc.bundles,然後添加代碼如下:if &compatible set nocompatibleendfiletype offset rtp+=~/.vim/bundle/vundle/call vundle#rc()" Let Vundle manage VundleBundle 'gmarik/vundle'" Define bundles via Github repos" 标簽導航Bundle 'majutsushi/tagbar'Bundle 'vim-scripts/ctags.vim'" 靜态代碼分析Bundle 'scrooloose/syntastic'" 檔案搜尋Bundle 'kien/ctrlp.vim'" 目錄樹導航Bundle "scrooloose/nerdtree"" 美化狀态欄Bundle "Lokaltog/vim-powerline"" 主題風格Bundle "altercation/vim-colors-solarized"" python自動補全Bundle 'davidhalter/jedi-vim'Bundle "klen/python-mode"" 括号比對高亮Bundle 'kien/rainbow_parentheses.vim'" 可視化縮進Bundle 'nathanaelkane/vim-indent-guides'if filereadable(expand("~/.vimrc.bundles.local")) source ~/.vimrc.bundles.localendiffiletype on

如上述代碼所示,我們通過Bundle指定各個插件在Github的位址,填寫規則是"使用者名/倉庫名"。書寫規則有三種,這裡使用的是最常見的一種,其它書寫方法這裡就不說了。

安裝插件

我們已經指定好了各個插件的路徑,接下裡就是安裝各個插件了。在shell中輸入vim,進入指令行模式輸入BundleInstall。

運作這個指令就開始自行安裝我們之前指定的各個插件了。這個過程需要連網,下載下傳并安裝好各個插件之後會提示Done!

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

sudo apt-get install ctags

插件配置

1、基礎配置

已經安裝好了各個插件,接下裡就可以直接用了嗎?答案是否定的,我們還需要繼續對自己安裝的插件進行配置。配置這裡也很簡單,下面是我的配置,編寫~/.vimrc:filetype offset rtp+=~/.vim/bundle/vundle/call vundle#rc()if filereadable(expand("~/.vimrc.bundles")) source ~/.vimrc.bundlesendif" tagbar标簽導航nmap tb :TagbarTogglelet g:tagbar_ctags_bin='/usr/bin/ctags'let g:tagbar_width=30autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()let g:jedi#auto_initialization = 1" 主題 solarizedlet g:solarized_termtrans=1let g:solarized_contrast="normal"let g:solarized_visibility="normal"" 配色方案set background=darkset t_Co=256colorscheme solarized" 目錄檔案導航NERD-Tree" nt 打開nerdree視窗,在左側欄顯示nmap nt :NERDTreelet NERDTreeHighlightCursorline=1let 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 NERDTreeautocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | end" ctrlp檔案搜尋" 打開ctrlp搜尋let g:ctrlp_map = 'ff'let g:ctrlp_cmd = 'CtrlP'" 相當于mru功能,show recently opened filesmap fp :CtrlPMRU" 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=0let g:ctrlp_match_window_bottom=1let g:ctrlp_max_height=15let g:ctrlp_match_window_reversed=0let g:ctrlp_mruf_max=500let g:ctrlp_follow_symlinks=1" vim-powerline美化狀态" let g:Powerline_symbols = 'fancy'let g:Powerline_symbols = 'unicode'" 括号比對高亮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 = 40let g:rbpt_loadcmd_toggle = 0" 可視化縮進let g:indent_guides_enable_on_vim_startup = 0 " 預設關閉let g:indent_guides_guide_size

= 1 " 指定對齊線的尺寸let g:indent_guides_start_level

= 2 " 從第二層開始可視化顯示縮進