在 vim 中我有这个 nmap
nmap <silent> ,mu : marks ABCDEFGHIJKLMNOPQRSTUVWXYZ<CR>
如果我没有 Upper 标记并尝试 ,mu
我得到 p>
E283: No marks matching "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
为什么不显示错误输出?
最佳答案
尝试
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>
关于vim : <silent> nmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225509/