Выяснение, почему привязка клавиш не работает в vim

Я установил SpaceVim, чтобы проверить это, и ;(точка с запятой) не работает.:nmap ;говорит: "Сопоставление не найдено". Дело в том, что я не смог найти, где он не отображается в источнике. Существуют ли разные способы переназначения / отмены сопоставления ключа в vim и как мне их найти в целом?

1 ответ

Кажется, здесь есть некоторая путаница в отношении разницы между "стандартной" функциональностью vim и эффектами сопоставления.

Примечание: одна из причин, по которой я предпочитаю настраиваемый обычный vim, заключается в том, что он заставил меня изучить настоящий vim и его философию, а затем создать инструменты поверх этого. Возможно, это пурист во мне, но в таких дистрибутивах, как SpaceVim, очень трудно увидеть, что происходит под капотом, когда вам нужно, чтобы они сделали что-то другое, тогда как vim для этого готов. Я пишу это потому, что подозреваю, что те, кто начинает с SpaceVim, не читают:help и поэтому не хватает полного понимания основ.

Стандартные ключи vim не являются сопоставлениями. n чтобы перейти к следующему поисковому совпадению, J присоединиться, q для записи макроса, ; повторить последний fFtT- все реализовано в исходном коде. Изменение их поведения по умолчанию потребует редактирования и перекомпиляции. Вот почему:normal! ; работает несмотря ни на что - игнорирует сопоставления и использует определение источника.

Итак, чтобы ответить на ваш вопрос, :map ; говорит, что сопоставления нет, потому что нет сопоставления.

Примечание: я предполагаю, что SpaceVim не отображает ; потому что я не мог найти документацию по этому поводу.

Конечно, всегда можно создать сопоставления, скрывающие это поведение, но это считается анти-шаблоном (особенно без наличия по крайней мере другой последовательности для выполнения старого поведения). Причина в том, что оригинал действительно считается полезным, так зачем его отменять?

Примечание: от моего взгляда на привязках SpaceVim, в SV делает это очень много. Они переназначеныq, который создал макросы, требующие от меня ввода двух дополнительных символов для доступа к одной из моих любимых и одной из самых замечательных функций!

Другие вопросы по тегам