检查vimScript中是否存在映射

检查vimScript中是否存在映射,vim,Vim,我试图检查映射是否存在,如果为真,则取消映射。如果我不检查就尝试这样做,它会出错并退出。我想我也可以尝试捕捉错误并添加异常,但我也找不到如何做 我试过: if exists("map jjj") unmap jjj endif 但它返回mapjj存在,即使不是真的,因为如果我在正常模式下运行 :map jjj 它返回nj*gj。也就是说,它返回j map exists 我没有进一步的想法您可以使用mapargjjj,从:help maparg: maparg{name}[,{mode

我试图检查映射是否存在,如果为真,则取消映射。如果我不检查就尝试这样做,它会出错并退出。我想我也可以尝试捕捉错误并添加异常,但我也找不到如何做

我试过:

if exists("map jjj")
    unmap jjj
endif
但它返回mapjj存在,即使不是真的,因为如果我在正常模式下运行

:map jjj
它返回nj*gj。也就是说,它返回j map exists

我没有进一步的想法

您可以使用mapargjjj,从:help maparg:

maparg{name}[,{mode}[,{abbr}[,{dict}]]]*maparg* 当{dict}被省略或为零时:返回映射的rhs 模式{mode}中的{name}。返回的字符串具有特殊的 在:map命令的输出中翻译为的字符 表册 当{name}没有映射时,将生成一个空字符串 返回。当{name}的映射为空时,则 他回来了。 它将与映射的{name}完全匹配。

您可以从:help maparg:

maparg{name}[,{mode}[,{abbr}[,{dict}]]]*maparg* 当{dict}被省略或为零时:返回映射的rhs 模式{mode}中的{name}。返回的字符串具有特殊的 在:map命令的输出中翻译为的字符 表册 当{name}没有映射时,将生成一个空字符串 返回。当{name}的映射为空时,则 他回来了。 它将与映射的{name}完全匹配