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