Фоновый сценарий: когда я отлаживал один VimScript, некоторый код не выполняется. Причина в том, что unmap вызывает одну ошибку, и VimScript выходит из этой ошибки. Поскольку вокруг кода стоит один пустой try-catch, это не очень очевидно, в чем проблема. После окончательного определения проблемы я начинаю думать, что это поведение по умолчанию не очень интуитивное.vim удалить ненужное сопоставление
Это простой код для иллюстрации того, что vim сообщает об ошибке при удалении несуществующего сопоставления экспериментально. В последней строке это не удастся, сказав, что «E31: нет такого отображения».
map <F10> :echo 'hello'
unmap <F10>
unmap <F10>
К сожалению, я не смог найти какой-либо документ о таком поведении. Мог бы кто-нибудь указать мне, где я могу объяснить, как удалить ненужное сопоставление? Какова рациональность этого дизайна? Лично я рассматривал бы удаление не существующих сопоставлений как одно нормальное утверждение и продолжал бы, как обычно.
EDIT: Может возникнуть некоторое недоразумение по этому вопросу. Я не спрашиваю, как подавить ошибку. Я хотел бы знать, почему vim думает, что удаление одного не существующего сопоставления является одной ошибкой. Это так серьезно?
Как указано в ответах и комментариях, это философия unix, чтобы поднять одну ошибку, когда она могла выполнить задание. Я полностью согласен с этим, но в оболочке сценарий продолжает по ошибке по умолчанию, поэтому одни и те же рассуждения не следует применять.
PS: Как было рекомендовано, этот вопрос был перенесен на vim-dev.
Посмотрите на ': help E31' для ссылки doc – FDinoff
@FDinoff Это только документы, когда возникает эта ошибка, а не почему vim вызывает эту ошибку. –
@AlbertNetymk [«Вы должны задавать только практические, ответные вопросы, основанные на реальных проблемах, с которыми вы сталкиваетесь».] (Http://stackoverflow.com/help/dont-ask) Вот почему я думаю, что этот вопрос не очень подходит для Stackoverflow. – glts