2011-08-29 129 views
2

在vim中我有這樣的nmapVIM:<silent> NMAP

nmap <silent> ,mu : marks ABCDEFGHIJKLMNOPQRSTUVWXYZ<CR> 

如果我不上有標誌,並嘗試,mu我得到

E283: No marks matching "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

爲什麼不顯示錯誤輸出?

回答

4

嘗試

nnoremap <silent> ,mu :execute "try\nmarks ABCDEFGHIJKLMNOPQRSTUVWXYZ\ncatch /\\V\\^Vim(marks):E283:/\nendtry"<CR> 

順便說一句,有沒有寫:nmap,而不是:nnoremap理由嗎?如果你沒有理由,除非你想運行在無法預測添加另一個映射(直接到vimrc或安裝插件)的結果的情況下運行,否則不應該這樣做。

編輯(sehe)

爲了讓事情變得更具有可讀性,我建議使用這樣的片段在你$MYVIMRC

function! ShowGlobalMarks() 
    try 
     marks ABCDEFGHIJKLMNOPQRSTUVWXYZ 
    catch /E283:/ 
    endtry 
endfu 

nnoremap <silent> ,mu :call ShowGlobalMarks()<CR> 
+0

甚至不知道有嘗試在vimscript中捕獲。謝謝! – MattClimbs