3

在 vim 我有这个 nmap

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

如果我没有高分并尝试,mu我得到

E283: No marks matching "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

为什么不显示错误输出?

4

1 回答 1

6

尝试

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

顺便说一句,有没有理由写:nmap而不是:nnoremap?如果您没有理由,则不应这样做,除非您想在无法预测添加另一个映射(直接到 vimrc 或通过安装插件)的结果的情况下运行。

编辑 (嘿嘿)

为了使事情更具可读性,我建议在您的$MYVIMRC:

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

nnoremap <silent> ,mu :call ShowGlobalMarks()<CR>
于 2011-08-29T15:49:37.687 回答