標籤:
為什麼要用vim編輯py檔案?
因為在Linux命令列中,缺少圖形介面的IDE,vim是最佳的文字編輯器,而為了更好的編輯py文本,所以配置vim。
1. 安裝完整版vim
vi和vim的區別?
在Linux內建有vi編輯器,而vim是指vi improved,即vi升級版。區別在於vi指令和功能較vim簡單,正因如此才有了vi improved。
Ubuntu內建的vi編輯器是vim.tiny,也就是vim最準系統,幾乎等同於vi。而在Ubuntu中vi命令指向的是vim。
如何使用apt安裝vim?
Linux分支之Debian及其衍生版本中可以通過apt管理組件,apt是advanced packaging tools的縮寫。Ubuntu作為Debian分支,使用apt命令管理組件是很方便的。
使用apt-get命令安裝包時會發現有幾個包可供選擇:vim,vim-gnome,vim-gtk,vim-tiny。據說vim包其實就是vim.basic,該版本不支援GUI。建議安裝的是vim-gnome。
apt搜尋包:
$ apt-cache search package_name
apt安裝包:
$ apt-get install vim-gnome
安裝完成後,vi命令會指向vim.gnome。
2. 安裝ctags
ctags用於支援taglist,使用ctags可以在變數之間跳躍。
$ apt-get install ctags
3. 安裝taglist
首先安裝vim-scripts,vim-scripts中帶有vim-addon-manager,vim-addon-manager是Ubuntu眾多外掛程式管理器之一,用來管理vim外掛程式。通過vim-addon-manager安裝taglist。
$ apt-get install vim-scripts$ vim-addons install taglist
4. 安裝pydiction
pydiction用來實現代碼補全和文法提示功能。pydiction不能通過apt安裝,需要自行下載安裝。
下載方法一: 在vim官網下載zip包,然後自行解壓。為:http://www.vim.org/scripts/script.php?script_id=850 下載方法二: 在GitHub下載源碼,可以使用Git遷出到本地,或者下載zip包自行解壓,地址為:https://github.com/rkulla/pydiction
pydiction可以讓vim自動補全Python代碼,無論是關鍵字,標準庫還是第三方庫。它主要包含3個檔案:
python_pydiction.vim: vim外掛程式檔案。 complete-dict: 一個字典檔案,包含了Python的關鍵字和模組。外掛程式引用的內容即來自於此。 pydiction.py: 一個py指令碼,運行此檔案可以增加新的模組到complete-dict字典中。
如何安裝?
Linux/Unix系統:將python_pydiction.vim檔案複製到 ~/.vim/after/ftplugin 目錄下。如果該目錄不存在,則建立它,vim會自動在此目錄下搜尋。
Windows系統:將python_pydiction.vim檔案複製到 C:\vim\vimfiles\ftplugin 目錄下(假設你的Vim安裝路徑為C:\vim)
除此之外的另兩個檔案complete-dict和pydiction.py可以放置到任何你想放置的位置,但在ftplugin目錄下最好只存放python_pydiction.vim而不應該還有其他檔案。
以下為pydiction.zip解壓後執行的安裝命令(我的complete-dict和pydiction.py放置在~/.vim目錄下):
進入解壓後的pydiction目錄$ cp after/ftplugin/python_pydiction.vim ~/.vim/after/ftplugin$ cp complete-dict ~/.vim$ cp pydiction.py ~/.vim
5. 編輯設定檔
編輯~/.vimrc檔案,如果不存在則建立。添加以下內容:
let Tlist_Auto_Highlight_Tag=1 let Tlist_Auto_Open=1 let Tlist_Auto_Update=1 let Tlist_Display_Tag_Scope=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Enable_Dold_Column=1 let Tlist_File_Fold_Auto_Close=1 let Tlist_Show_One_File=1 let Tlist_Use_Right_Window=1 let Tlist_Use_SingleClick=1 nnoremap <silent> <F8> :TlistToggle<CR> filetype plugin on autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascrīpt set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType c set omnifunc=ccomplete#Complete let g:pydiction_location=‘~/.vim/tools/pydiction/complete-dict‘ set autoindentset tabstop=4 set shiftwidth=4 set expandtab set number
filetype plugin on:表示開啟外掛程式。
let g:pydiction_location=‘~/.vim/tools/pydiction/complete-dict‘ : 寫入你存放complete-dict的絕對路徑。
如果是Pydiction 1.0以前的版本,要確保vimrc不包含以下代碼:
if has("autocm") autocmd FileType python set complete+=k/path/to/pydiction iskeyword+=.,(endif " has("autocmd")
6. 進擊的.vimrc
以上針對Python配置的vim算是基本完成,但事情可以做得更完善一點,進一步將你的vim變得更好用。(以下進擊不僅針對Python,而是對vim自身的完善。)
6.1. 安裝pathogen.vim
簡介:pathogen.vim是一個方便操作"runtimepath", "path", "tags"等的外掛程式,安裝了pathogen.vim後,可以非常方便地下載安裝其他vim外掛程式。
下載:http://www.vim.org/scripts/script.php?script_id=2332 或 https://github.com/tpope/vim-pathogen
安裝:
首先,在vim runtime目錄下建立兩新目錄 ~/.vim/autoload 和 ~/.vim/bundle。
$ mkdir -p ~/.vim/autoload ~/.vim/bundle
其次,拷貝源包中 autoload/pathogen.vim 到 ~/.vim/autoload 目錄下。
$ cp autoload/pathogen.vim ~/.vim/autoload/pathogen.vim
然後,在.vimrc檔案中寫入以下代碼:
execute pathogen#infect()
至此,pathogen.vim便安裝完成了。此後所有vim外掛程式目錄可以解壓到 ~/.vim/bundle 中, 它會被自動追加到"runtimepath"中。
6.2. 代碼高亮
簡介:對代碼進行高亮顯示。
下載:http://www.vim.org/scripts/script.php?script_id=1599
安裝:
將下載的highlight.vim拷貝到 ~/.vim/plugin 目錄下。
$ cp highlight.vim ~/.vim/plugin
高亮搜尋結果命令 :set hlsearch,使用命令 :hi Search查看高亮背景色,預設棕黃色,更改高亮背景色命令 :hi Search guibg=LightBlue。
臨時關閉高亮命令 :nohlsearch,該命令可簡寫為 :noh。
可以配置.vimrc,使用空格鍵臨時關閉搜尋結果高亮,在.vimrc寫入:
:nnoremap <silent> <Space> :nohlsearch<Bar>:echo<CR>
要關閉搜尋結果高亮,使用命令 :set nohlsearch。同樣可以配置.vimrc來使用快速鍵(F4)快速關閉和開啟搜尋結果高亮,在.vimrc寫入:
:noremap <F4> :set hlsearch! hlsearch?<CR>
要預設關閉搜尋結果高亮,在.vimrc寫入:
set viminfo^=h
(更多參考 http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches)
(如何高亮單行 http://vim.wikia.com/wiki/Highlight_current_line)
6.3. taglist
簡介:顯示標籤列表。
下載:參看前述。
安裝:參看前述。
預設關閉taglist,在.vimrc寫入:
let Tlist_Auto_Open=0
在正常編輯地區和tags地區切換命令 :ctrl+w+w。
TlistToggle:開關taglist。
<CR>:跳轉至tag定義處。
o:在新視窗中顯示光線標下的tag。
u:更新taglist視窗中的tag。
s:更改排序方式,名字排序或行號排序。
X:taglist視窗放大縮小。
+:開啟摺疊,等同zo。
-:關閉摺疊,等同zc。
*:開啟所有摺疊,等同zR。
=:將所有tag摺疊,等同zM。
[[:跳轉至前一個檔案。
]]:跳轉至後一個檔案。
q:關閉taglist視窗。
<F1>:顯示協助。
6.4. 摺疊代碼
簡介:將Python程式碼摺疊功能,Python的class,function,以及在{{{,}}}標記的內容將被摺疊。
下載:http://vim.sourceforge.net/scripts/script.php?script_id=515
安裝:
將下載的python_fold.vim拷貝到 ~/.vim/plugin 目錄下。
關閉開啟時預設摺疊命令,在.vimrc寫入:
set nofoldenable
zo: 展開單個摺疊區。
zc: 彙總單個摺疊區。
zn: 展開全部摺疊區。
zN: 彙總全部摺疊區。
6.5. NERDTree分類樹
簡介:開啟檔案分類樹,相當於檔案瀏覽器。
下載:http://www.vim.org/scripts/script.php?script_id=1658
安裝:
將整個解壓後的源包拷貝到 ~/.vim 目錄下,需要確保 NERD_tree.vim 位於 ~/.vim/plugin 目錄下, NERD_tree.txt 位於 ~/.vim/doc 目錄下。
使用<F7>作為快速鍵開關分類樹,在.vimrc寫入:
map <F7> :NERDTreeToggle<CR>
6.6. 自動補全
簡介:可以對常用詞進行提示補全。
下載:http://www.vim.org/scripts/script.php?script_id=1879 或 https://bitbucket.org/ns9tks/vim-autocomplpop/get/tip.zip
安裝:
拷貝acp.vim 到 ~/.vim/plugin 目錄下,拷貝acp.txt到~/.vim/doc 目錄下。
【注意】 該外掛程式有一個依賴對象l9.vim,所以還需要安裝l9.vim外掛程式。
6.7. l9.vim
簡介:自動補全AutoComplPop的依賴庫。
下載:http://www.vim.org/scripts/script.php?script_id=3252
安裝:
將源包目錄置於vim運行時目錄下,確保 l9.vim 處於 ~/.vim/plugin 目錄下, l9.txt 處於 ~/.vim/doc 目錄下。
轉載 - Vim 的 Python 編輯器詳細配置過程 (Based on Ubuntu 12.04 LTS)