vim:<silent> nmap </silent>

时间:2011-08-29 02:23:29

标签: vim silent

在vim我有这个nmap

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

如果我没有上标记,请尝试,mu

E283: No marks matching "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

为什么不显示错误输出?

1 个答案:

答案 0 :(得分:5)

尝试

 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>