基本上就是标题。当我包含在我的vimrc 中时
set iskeyword-=_
并保存它,当我重新加载gvim并键入时
:set iskeyword
我仍然看到
iskeyword=@,48-57,_,192-255
正如你所看到的,"_"仍然存在。如果我只是:set iskeyword-=_
,它会按预期工作。为什么我的vimrc不起作用?有没有其他方法可以绕过这个问题?如果有,怎么办?
请与:verbose set iskeyword?
核实设置位置。请注意,许多文件类型插件都会更改此值(但对于无参数、带有空缓冲区的普通Vim启动,不应设置任何值)。
如果:verbose
没有给出答案,请使用vim -V20vimlog
捕获Vim启动的完整日志,并搜索该选项。
此外,您的.vimrc
是否真的来源?:scriptnames
告诉你。
覆盖.virc中的全局插件设置
我对来自全局文件类型插件(在我的情况下是perl.vim)的设置也有同样的问题,我想更改.virc中的iskeyword配置。多亏了其他答案中的提示,我意识到插件是在my.virc之后评估的,覆盖了我所做的更改。
这种情况的典型答案是在本地配置中创建一个"after"目录,如
~/.vim/after/ftplugin/perl.vim
并将CCD_ 8放在那里。这为我解决了问题。
只需在插件后重置.virc中的选项。根据文档,你可以这样做。
set iskeyword=@,48-57192-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-=_
也可以添加到该文件中。