基本上是标题。当我加入我的vimrc
时set iskeyword-=_
并保存,当我重新加载gvim并输入
时:set iskeyword
我仍然看到
iskeyword=@,48-57,_,192-255
正如您所看到的,' _'还在那里。如果我只是:set iskeyword-=_
它按预期工作。为什么我的vimrc没有这个工作?有没有其他方法我可以解决这个问题,如果是这样的话?
答案 0 :(得分:9)
检查:verbose set iskeyword?
设置的位置。请注意,许多文件类型插件会更改此值(但对于无参数,使用空缓冲区进行普通Vim启动时,应该没有设置任何一个)。
如果:verbose
没有得出答案,请使用vim -V20vimlog
捕获Vim启动的完整日志,然后搜索该选项。
另外,您的.vimrc
实际来源了吗? :scriptnames
告诉你。
答案 1 :(得分:3)
我遇到了来自全局文件类型插件(在我的情况下是 perl.vim )的设置存在同样的问题,我希望在其中更改 iskeyword 配置。的vimrc。感谢其他答案中的提示,我意识到插件在我的.vimrc之后评估,覆盖了我所做的更改。
这种情况的canonical answer是在本地配置中的" 目录之后创建"
~/.vim/after/ftplugin/perl.vim
并将set iskeyword-=_
放在那里。这解决了我。
答案 2 :(得分:2)
找到它:在我的_vimrc中,在底部还有另外两个文件来源。我刚刚删除它们并且它有效!
答案 3 :(得分:2)
只需在插件后重置.vimrc中的选项即可。根据{{3}}你可以这样做。
set iskeyword = @,48-57,192-255
@ - 代表所有字母字母
48-57 - 代表ASCII字符48到57,它们是数字0-9
192-255 - 是可打印的拉丁字符
快乐的编码。
答案 4 :(得分:0)
在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-=_
可以添加到该文件中(也可以)。
答案 5 :(得分:0)
我有一个.conf
文件的问题。所以我在.vimrc
中做到了:
autocmd BufReadPost *.conf set isk-=.