"set iskeyword-=_" не устанавливается из vimrc

В основном название. Когда я включаю в свой VIMRC

set iskeyword-=_

и сохранить его, когда я перезагружаю gvim и набираю

:set iskeyword

Я все еще вижу

iskeyword=@,48-57,_,192-255

Как видите, "_" все еще там. Если я просто :set iskeyword-=_ это работает как задумано. Почему это не работает с моего vimrc? Есть ли альтернативный способ обойти это, и если да, то как?

5 ответов

Проверить с :verbose set iskeyword? где это было установлено. Обратите внимание, что многие плагины файловых типов изменяют это значение (но для простого аргумента запуска Vim с пустым буфером ни один из них не должен был быть установлен).

Если :verbose не дает ответа, запишите полный журнал запуска Vim с помощью vim -V20vimlogи найдите опцию.

Кроме того, ваш .vimrc на самом деле получены? :scriptnames говорит тебе.

Переопределение глобальных настроек плагина из.vimrc

У меня была такая же проблема с настройками, исходящими от плагина глобального типа файла (в моем случаеperl.vim), где я хотел изменить конфигурацию iskeyword в моем.vimrc. Благодаря подсказкам в других ответах, я понял, что плагины оцениваются после моего.vimrc, переопределяя сделанные мной изменения.

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

~/.vim/after/ftplugin/perl.vim

и положить set iskeyword-=_ там. Это решило это для меня.

Просто сбросьте опцию в вашем.vimrc после плагинов. Согласно документации вы можете сделать это следующим образом.

set iskeyword = @, 48-57,192-255

@ - обозначает все буквы алфавита
48-57 - обозначает символы ASCII от 48 до 57, которые являются числами 0-9
192-255 - печатные латинские буквы

Удачного кодирования.

Нашел его: в моем _vimrc внизу было два других файла. Я просто удалил их, и это сработало!

У меня была проблема с .conf файл. Так что я сделал это в моем .vimrc:

autocmd BufReadPost *.conf set isk-=.

В комментарии в vim80/ftplugin/perl.vim это говорит:

" The following line changes a global variable but is necessary to make
" gf and similar commands work.  The change to iskeyword was incorrect.
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
" problem for you, add an after/ftplugin/perl.vim file that contains
"       set isfname-=:
set isfname+=:
set iskeyword+=:

Это говорит о смене спины isfnameно очевидно set iskeyword-=_ может быть добавлен в этот файл (также).

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