Предотвращение переназначения плагином ключа в vim

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

Я действительно не хочу выяснять, какой из них ломается и как это исправить. Есть ли способ указать в моем .vimrc, что я не хочу, чтобы он менялся?

Изменить:

Люк уже ответил на мой вопрос, но я решил прояснить его для будущих читателей, потому что есть некоторые разногласия по поводу того, что dw должен делать по умолчанию. Допустим, у нас есть слово 1234.5678. По умолчанию во всех системах, над которыми я работал, если курсор стоит на 1, при вводе dw должно остаться 0,5678. Когда я задал вопрос, набрав dw для меня, я удалил все это (1234.5678).


person Spike    schedule 01.09.2011    source источник
comment
Вы ищете de. d для удаления, за которым следует движение e до конца word. Вы можете использовать E для конца WORD. Для получения дополнительной помощи: :h word-motions   -  person Peter Rincker    schedule 01.09.2011


Ответы (3)


Я не думаю, что вы ищете то, что нужно. Вместо этого найдите, какой (ft?) плагин переопределяет 'isk' -- все еще с подробным описанием -> :verbose set isk

:h w 
:h word
person Luc Hermitte    schedule 01.09.2011
comment
И тем не менее, это вы подсказали мне идею ;) Так как dw это команда + движение, вряд ли это будет отображено. Ну, может быть, но я никогда этого не видел. В отличие от &isk, который вызывал у меня головную боль с некоторыми типами файлов. - person Luc Hermitte; 01.09.2011
comment
Отлично, спасибо! Я нашел место, где переопределялся isk, удалил строку и теперь все хорошо. - person Spike; 03.09.2011

dw не является отображением. d — это команда, которая принимает движение и правильное поведение именно тот, который вы описали. dw означает удаление слова и делает это :). Кстати, если вы хотите узнать что-то о своих сопоставлениях, я предлагаю вам попробовать следующие команды:

:map

который дает вам список всех ваших отображений. И чудесное:

:verbose map <c-s>

который дает вам подробную информацию о данном сопоставлении (в нашем случае <c-s>)

person lucapette    schedule 01.09.2011

Если проблема не в опции «iskeyword», упомянутой @Luc Hermitte, то есть две возможности:

  1. Сопоставление в обычном режиме, которое переназначает d или dw. Команда, чтобы проверить, является ли это проблемой:

    verbose nmap d
    

    . Он сообщит обо всех сопоставлениях d*, включая само d и dw. Не думаю, что их будет много.

  2. Отложенное оператором сопоставление, которое переназначает w. Проверьте с помощью

    verbose omap w
    

Однако я не думаю, что какой-либо автор плагина достаточно самонадеян, чтобы переназначить это, поэтому сначала проверьте ответ @Luc Hermitte.

person ZyX    schedule 01.09.2011