




Эта проблема вызвана тем фактом, что у вас есть что-то сопоставленное еще (либо в визуальном режиме, либо во всех режимах), которое начинается с 'a'.
Представьте, что я отображаю 2 разные команды в моем .vimrc (или, как вы его назвали, в файле конфигурации)
vnoremap a A
vnoremap ab D
Здесь, когда я нажимаю «а» в визуальном режиме, я хочу, чтобы добавлялся текст. Когда я нажимаю 'ab', я хочу, чтобы вместо этого он удалил строку для меня.
Теперь я беру клавиатуру и нажимаю «ab». Как vim узнает, что я хочу удалить строку, а не просто добавить к тексту букву «b»? Для обоих требуются одинаковые нажатия клавиш.
Итак, чтобы заметить разницу, когда я нажимаю клавишу 'a', vim ждет секунду, чтобы увидеть, какую команду я выберу: если я быстро нажму «b», он поймет, что на самом деле это инструкция «ab», что означает «D», что означает удаление.
Если я нажму «a» и подожду секунду, vim примет, что я выдал инструкцию «a», что означает «A», что означает добавление. Затем я нажимаю «b», и к тексту добавляется буква «b».
Если вы хотите, чтобы это прекратилось, вам придется пройти через свой .vimrc и изменить свои сопоставления, чтобы они не перекрывались (начинаются с тех же букв), либо вы можете ввести
:h leader
в vim и узнайте о мапплайдерах, которые значительно упростят вам планирование ваших сопоставлений. Я лично установил свой mapleader на пробел, но многие люди также любят использовать запятые или другие клавиши по своему выбору.
tldr: Vim ждет секунду, чтобы узнать, собираетесь ли вы нажать другую клавишу и выполнить другую команду
Благодарность! я должен был подумать об этом. Я видел, что действие отображается с a% в визуальном режиме в map, но map a% <nop> все еще не может перезаписать исходное отображение, как это происходит?
@wengwengweng ну, когда вы набираете: map, что он говорит вам, что% отображается? вы пробовали vnoremap a% <nop>? что говорит строка from: map?
хорошо работает vnoremap a% <nop> в vim работает, но он все еще ждет, поэтому unmap a% работает лучше. но если я вставлю любой из них в свой .vimrc, они не будут работать (карта еще не существует), так что это сопоставление добавлено плагином, который загружается после .vimrc?
мне удалось это сделать, создав скрипты в папке after, спасибо
@wengwengweng, вероятно, это что-то из плагина, потому что плагины запускаются после vimrc. Я настоятельно рекомендую вам лучше установить свой кленовый поводок. Затем вы просто помещаете mapleader перед любыми командами, которые пишете сами. Например, мой кленовый выноски - это пробел, поэтому, чтобы мое отображение открыло или закрыло складку, я нажимаю <space> f. Таким образом, я не мешаю тому, на что отображается f, даже если я не знаю, на что отображается f. Попробуйте, одна из особенностей vim заключается в том, что он чувствует себя намного лучше, когда вы используете его так, как он задумал, а не первым способом, который работает.
у вас есть другие сопоставления, начинающиеся с
a.