проверьте, существует ли карта в vimScript - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь проверить, существует ли сопоставление, и, если оно истинно, снимите его. Если я пытаюсь сделать это без проверки, он сталкивается с ошибкой и завершает работу. Я думаю, я также могу попытаться поймать ошибку и добавить исключение, но я не могу найти, как это сделать.

Я пытался:

if exists("map jjj")
    unmap jjj
endif

Но он возвращает map jjj существует (даже если не соответствует действительности), потому что если я запускаю в обычном режиме

:map jjj

, возвращается n j * gj. То есть он возвращает j карта существует.

У меня нет дальнейших идей

1 Ответ

5 голосов
/ 12 февраля 2020

Вы можете использовать maparg("jjj") из :help maparg:

maparg({name} [, {mode} [, {abbr} [, {dict}]]])         *maparg()*

        When {dict} is omitted or zero: Return the rhs of mapping
        {name} in mode {mode}.  The returned String has special
        characters translated like in the output of the ":map" command
        listing.


        When there is no mapping for {name}, an empty String is
        returned.  When the mapping for {name} is empty, then "<Nop>"
        is returned.

Это будет точно соответствовать {name} сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...