10

基本上是标题。当我包含在我的 vimrc 中时

set iskeyword-=_

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

:set iskeyword

我仍然看到

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

如您所见,“_”仍然存在。如果我只是:set iskeyword-=_按预期工作。为什么这在我的 vimrc 中不起作用?有没有另一种方法可以解决这个问题,如果可以的话怎么办?

4

6 回答 6

11

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

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

另外,你.vimrc真的有来源吗?:scriptnames告诉你。

于 2014-09-30T14:54:52.973 回答
3

从 .vimrc 覆盖全局插件设置

我对来自全局文件类型插件(在我的例子中是perl.vim)的设置有同样的问题,我想在我的 .vimrc中更改iskeyword配置。感谢其他答案中的提示,我意识到插件是在我的 .vimrc之后评估的,覆盖了我所做的更改。

这种情况的典型答案是在本地配置中创建一个“之后”目录,例如

~/.vim/after/ftplugin/perl.vim

并放在set iskeyword-=_那里。这为我解决了它。

于 2016-12-06T16:08:42.197 回答
2

只需在插件之后重置 .vimrc 中的选项。根据文档,您可以这样做。

设置 iskeyword=@,48-57,192-255

@ - 代表所有字母
48-57 - 代表 ASCII 字符 48 到 57,即数字 0-9
192-255 - 是可打印的拉丁字符

快乐编码。

于 2016-08-31T00:00:40.857 回答
1

找到它:在我的 _vimrc 中,在底部还有另外两个文件正在获取。我刚刚删除了它们,它起作用了!

于 2014-10-02T19:24:37.560 回答
1

我有一个.conf文件的问题。所以我在我的.vimrc

autocmd BufReadPost *.conf set isk-=.
于 2018-12-28T15:03:28.550 回答
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+=:

这谈到了 change back isfname,但显然set iskeyword-=_可以添加到该文件中(也)。

于 2017-04-14T10:25:05.237 回答