首頁 > 軟體

Ubuntu 18.04下使用Vim設定Python開發環境

2020-06-16 16:34:05

本文給大家介紹的是在Ubuntu 18.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 off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

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

為了防止組態檔太亂,我們可以通過~/.vimrc.bundles管理我們安裝的外掛。

.vimrc.bundles組態檔

首先建立檔案~/.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
" 標籤導航
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.local
endif

filetype on

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

安裝外掛

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

執行這個命令就開始自行安裝我們之前指定的各個外掛了。這個過程需要連網,下載並安裝好各個外掛之後會提示Done!

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

sudo apt-get install ctags

外掛設定

1、基礎設定

已經安裝好了各個外掛,接下裡就可以直接用了嗎?答案是否定的,我們還需要繼續對自己安裝的外掛進行設定。設定這裡也很簡單,下面是我的設定,編寫~/.vimrc:

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

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

" tagbar標籤導航
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

" 目錄檔案導航NERD-Tree
" nt 開啟nerdree視窗,在左側欄顯示
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'
" 相當於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美化狀態
" 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 = 40
let 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  " 從第二層開始視覺化顯示縮排

你可以根據自己的喜好設定快捷鍵,<leader>是按鍵,根據我的設定。在Vim的正常模式下:

  • 依次按鍵tb,就會調出標籤導航;
  • 依次按鍵ff,就會調出檔案搜尋;
  • 依次按鍵nt,就會調出目錄導航。

2、執行設定

這些基礎設定已經完成,但是我想在Vim下像在IDE中一樣,按一個鍵就執行當前編輯的Python檔案,並檢視執行結果,這可以???到嗎?

沒問題!

在~/.vimrc最後一行追擊程式碼如下:

" 執行檔案
map <F5> :w<cr>:r!python3 %<cr>

上述程式碼的意思就是,在Vim的正常模式下,按F5就會儲存檔案並使用Python3執行當前檔案,並將結果輸出到當前介面。

注意,:!python3表示執行系統命令Python3,如果你沒有安裝Python2和Python3共存,此處只寫python即可。

這樣我們就可以邊編輯邊檢視執行結果了,見本文最上面截圖。

執行完之後,依然可以在Vim的正常模式下按u,撤回這個輸出操作,這樣輸出結果就撤回了,我們就可以繼續編寫自己的程式碼了。

總結

Vim很好用,很強大,用上了有種愛不釋手的感覺。外掛不用安裝太多,適合自己的就行,根據自己的需求進行設定,編輯快捷鍵,真的很方便。

你也來設定一個屬於自己的Vim吧!


IT145.com E-mail:sddin#qq.com