"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-=_
может быть добавлен в этот файл (также).