VIM 打造自己的VIM介面!

來源:互聯網
上載者:User

1 zen coding

功能就不多說了!看:

首先下載zencoding!

官方:http://code.google.com/p/zen-coding/

zecoding.vim放到Vim\vimfiles\plugin檔案夾下。

zencoding.txt放到Vim\vimfiles\doc檔案夾下。

將autoload檔案夾下檔案拷貝到相應目錄下即可。(當初就是缺少這一操作,導致一直安裝失敗)

2 NERDTree

 將NERDTree下載下來後,解壓放到Vim\vimfiles\plugin目錄下即可。下面看下配置:

"NERDTree execute quick key setupmap <F4> :NERDTree<CR>"將NERDTree放置在編輯區右邊"let NERDTreeWinPos=1"設定NERDTree的寬度,預設為30let NERDTreeWinSize=25"let NERDTreeMinimalUI=1 "是否顯示書籤let NERDTreeShowBookmarks=0"顯示隱藏檔案"let NERDTreeShowHidden=1 let NERDTreeStatusline=0let NERDChristmasTree=1

 

3 javacomplete

可能很多人都要想去用代碼提示。畢竟用ide用多了嘛!可是貌似vim沒有帶java 的自動提示功能。

那麼怎麼辦呢!

這個時候javacomplete就有用處了。

先去vim官網下載下來javacomplete.解壓縮後將javacomplete.doc放到Vim\vimfiles\doc目錄下。

然後將autoload中的javacomplete.vim放到autoload目錄下。

Reflection.java編譯後的class檔案也放到autoload目錄下。同時將class檔案放到jdk的lib目錄下。

同時將你的vim中的autoldo目錄配置到環境變數classpath中。比如我的就是C:\Program Files\Vim\vim73\autoload;

然後在你的_vimrc檔案中加入:

"包括其他各種語言,如php java javascript 都能自動補全filetype plugin indent on"開啟檔案配置autocmd FileType ruby,eruby set omnifunc=rubycomplete#Completeautocmd FileType python set omnifunc=pythoncomplete#Completeautocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJSautocmd FileType html set omnifunc=htmlcomplete#CompleteTagsautocmd FileType css set omnifunc=csscomplete#CompleteCSSautocmd FileType xml set omnifunc=xmlcomplete#CompleteTagsautocmd FileType java set omnifunc=javacomplete#Completeif has("autocmd") && exists("+omnifunc")  autocmd Filetype *  \ if &omnifunc == "" |  \ setlocal omnifunc=syntaxcomplete#Complete |  \ endifendiflet g:rubycomplete_buffer_loading = 1let g:rubycomplete_classes_in_global = 1"let g:rubycomplete_rails = 1autocmd FileType java inoremap <buffer> . .<C-X><C-O><C-P>

 

然後用vim開啟你的檔案,到輸入模式下,輸入<c-x><c-o><c-p>就能看到自動補全效果。

這裡說下本人剛開始配置不成功的幾個原因:

第一個由於沒有開啟檔案配置:

filetype plugin indent on"開啟檔案配置

還有就是一下一段語句沒寫:

if has("autocmd") && exists("+omnifunc")  autocmd Filetype *  \ if &omnifunc == "" |  \ setlocal omnifunc=syntaxcomplete#Complete |  \ endifendif

 

由於開始沒有配置最後一句

autocmd FileType java inoremap <buffer> . .<C-X><C-O><C-P>

導致沒次提示都會自動選中第一個選擇,每次都要去刪除。

最後一句能夠實現自動選擇。

4 Taglist

同樣先去下載Taglist包

將檔案夾中的檔案放到相應的目錄下。

然後在_vimrc檔案中如下配置:

"taglist配置let Tlist_Show_One_File=1  "只有taglist一個視窗時退出vimlet Tlist_Exit_OnlyWindow=1"taglist出現的右邊let Tlist_Use_Right_Window=1  let Tlist_WinHeight = 30"設定寬度let Tlist_WinWidth=20"減少標籤列表視窗中的空白行let Tlist_Compact_Format=1"讓當前不被編輯的檔案的方法列表自動摺疊起來 let Tlist_File_Fold_Auto_Close=1"顯示taglist菜單let Tlist_Show_Menu=1"如果Taglist視窗是最後一個視窗時退出VIMlet Tlist_Exit_OnlyWindow = 1 "配置快捷map <F3> :TlistToggle <CR>

4 minibufexpl

 先去官網下載:minibufexpl,解壓後拷貝到Vim\vimfiles\plugin目錄下。

然後在_vimrc檔案中加入:

let g:miniBufExplMapWindowNavVim = 1   let g:miniBufExplMapWindowNavArrows = 1   let g:miniBufExplMapCTabSwitchBufs = 1   let g:miniBufExplModSelTarget = 1  let g:miniBufExplMoreThanOne=0  

 

5 winManager合并NERDTree和Taglist

下載winManager解壓縮後檔案拷貝到Vim\vimfiles\plugin

然後在_vimrc檔案中配置如下:

let g:NERDTree_title="[NERDTree]"  let g:winManagerWindowLayout="NERDTree|TagList"    function! NERDTree_Start()      exec 'NERDTree'  endfunction    function! NERDTree_IsValid()      return 1  endfunction    nmap wm :WMToggle<CR> 

 

如果需要自動開啟:

"自動開啟,可以選擇開啟vim即啟用winmanaer,那麼將需要將vimmanager.vim中的AutoOpenWinManger的注釋取消。"let g:AutoOpenWinManager = 1

 

那麼這裡winManager會有一個小bug,就是開啟的時候會出現一個空白頁。如果需要去清除掉。

用兩種辦法。

如果是自動啟動那麼需要一個在vimManager.vim中最後加一段代碼如下:

"set auto open Winmanager  "if g:AutoOpenWinManager "    "NERDTree放置在左邊配置方式"   autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd q"    "NERDTree放置在右邊配置方式"    "autocmd VimEnter * nested call s:StartWindowsManager()|1wincmd w|q"endif 

這裡如果是winManager放在在編輯區的左邊則用第一種方式,如果在右邊則用第二種。

當然預設是第一種。

如果不是自動啟動:

剛去winManager.vin中將ToggleWindowsManager修改為如下即可:

function! <SID>ToggleWindowsManager()if IsWinManagerVisible()call s:CloseWindowsManager()elsecall s:StartWindowsManager()"exe 'q'endendfunction

6 在vim實現editplus中在瀏覽器中查看的功能。(能夠查看多種檔案哦,如php html jsp 等)

 在_vimrc中配置如下:

 

"直接在vim中輸入run 呼叫瀏覽器訪問頁面function! ViewInBrowser(name)     let file = expand("%:p")     exec ":update " . file     let l:browsers = {         \"cr":"D:/WebDevelopment/Browser/Chrome/Chrome.exe",         \"ff":"D:/WebDevelopment/Browser/Firefox/Firefox.exe",         \"op":"D:/WebDevelopment/Browser/Opera/opera.exe",         \"ie":"C:/progra~1/intern~1/iexplore.exe",         \"ie6":"D:/WebDevelopment/Browser/IETester/IETester.exe -ie6",         \"ie7":"D:/WebDevelopment/Browser/IETester/IETester.exe -ie7",         \"ie8":"D:/WebDevelopment/Browser/IETester/IETester.exe -ie8",         \"ie9":"D:/WebDevelopment/Browser/IETester/IETester.exe -ie9",         \"iea":"D:/WebDevelopment/Browser/IETester/IETester.exe -all"     \}     let htdocs='C:\\AppServ\\www\\'    let strpos = stridx(file, substitute(htdocs, '\\\\', '\', "g"))     if strpos == -1        exec ":silent !start ". l:browsers[a:name] ." file://" . file     else         let file=substitute(file, htdocs, "http://localhost:81/", "g")         let file=substitute(file, '\\', '/', "g")         exec ":silent !start ". l:browsers[a:name] file     endifendfunction  :command Runie call ViewInBrowser("ie")

 

這裡只要你的檔案是在 htdocs 的目錄下,那麼都會以http協議的方式去訪問。也就是會去用瀏覽器的方式開啟它。

7 Tcomment

從vim的官網上下載Tcomment.vba

用vim開啟它,輸入:so%,vim將會自動將該外掛程式放入到~/.vim/plugin下 .

然後用vim開啟檔案,選中你需要注釋的行,在normal模式下輸入gc即可注釋。

 

8 snipmate

將從那官網上下載的snipmate放到相應的目錄下。

然後開啟一個java 檔案,輸入 main 然後按tab鍵

則會出現如下代碼:

public static void main (String [] args){/* code */}

其顯示方案可以在snippets檔案夾中相應的檔案中自訂修改。

最後附上一張配置了一天的vim介面。自己感覺還不錯吧!

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.