"设置iskeyword - = _"没有从vimrc设置

时间:2014-09-30 14:33:52

标签: vim config autocmd

基本上是标题。当我加入我的vimrc

set iskeyword-=_

并保存,当我重新加载gvim并输入

:set iskeyword

我仍然看到

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

正如您所看到的,' _'还在那里。如果我只是:set iskeyword-=_它按预期工作。为什么我的vimrc没有这个工作?有没有其他方法我可以解决这个问题,如果是这样的话?

6 个答案:

答案 0 :(得分:9)

检查:verbose set iskeyword?设置的位置。请注意,许多文件类型插件会更改此值(但对于无参数,使用空缓冲区进行普通Vim启动时,应该没有设置任何一个)。

如果:verbose没有得出答案,请使用vim -V20vimlog捕获Vim启动的完整日志,然后搜索该选项。

另外,您的.vimrc实际来源了吗? :scriptnames告诉你。

答案 1 :(得分:3)

从.vimrc

覆盖全局插件设置

我遇到了来自全局文件类型插件(在我的情况下是 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-=.