7

Я использую MacVim с spf13, и когда я использую w для перемещения слова вперед, точки рассматриваются как часть слова.

     myObject.myMethod()
     ^       ^        ^
     |       |        |
cursor       |        |
             |        |
  where I want to go  |
                      |
where I'm actually moved

Есть ли для этого настройки?

Продолжение: я заметил, что vim ведет себя так только с некоторыми файлами. Для fileA.coffee перемещение вперед пропускает точки, а для fileB.coffee - нет. Это как-то установлено на уровне файлов?

Однако, над файлами, которые пропускает точку (fileA), выполняем:set iskeyword-=. как предполагает Гептит работает.

3 ответа3

9

Это опция 'iskeyword' . Вы можете изменить это поведение, просто выполнив:

:set iskeyword-=.

Если это не сработает, это означает, что символ точки включен в параметр как часть диапазона символов, а не по отдельности, и вам придется проверить значение (с вопросительным знаком в качестве части команды):

:verbose set iskeyword?

Затем определите, как правильно его изменить, чтобы исключить период. Взгляните на это (с одинарными кавычками в составе команды):

:help 'iskeyword'

Я должен предупредить вас, что включение символа точки в 'iskeyword' не является значением по умолчанию для Vim, поэтому у вас может быть плагин filetype или подсветка синтаксиса для конкретного языка, которая добавляет его. Причина этого в том, что « iskeyword » используется для многих вещей, включая определенные атомы регулярных выражений, которые можно использовать для подсветки синтаксиса. Так что удаление может "сломать" что-то еще.

0

У меня было много проблем с плагином neocomplete, который был добавлен в spf13. Во многих случаях завершение не удавалось, поиск не удался, и даже ESC не работает в словах, чтобы вернуться в нормальный режим. Удаление neocomplete и всех настроек, связанных с neocomplete, решило большинство из этих проблем, хотя ESC все еще требуется дважды в определенных ситуациях, чтобы выйти из режима вставки.

0

Правильный путь - это изменение определения ключевого слова.

Я использую на vimrc:

set iskeyword=65-90,95,97-122,48-57 "the same: a-z,_,A-Z,0-9

Если вы используете некоторые плагины, такие как ctrlp, вам потребуется дополнительная работа, чтобы сохранить конфигурацию iskeyword активной, потому что существует множество плагинов, которые изменяют iskeyword при каждом их выполнении.

Вы можете сопоставить лидера +k, чтобы запустить эту команду

map <leader>k :set iskeyword=65-90,95,97-122,48-57<CR>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .