Vim 的 Python 編輯器詳細配置過程 (Based on Ubuntu 12.04 LTS)


為什么要用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 autoindent
set 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 目錄下。

    

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM