vim 有时似乎无法在 OSX 上加载 .vimrc

vim 有时似乎无法在 OSX 上加载 .vimrc

在 .vimrc 中有一行set expandtab,但有时这不起作用。问题是当我按下tab键时会插入一个新选项卡,但它不会扩展到空格。我可以看到 'tab' 在那里set list

:scriptnames清单显示 .vimrc 已加载,但问题有时仍然存在。我set expandtab每次都必须手动运行。1
:~/.vimrc

还有其他类似的问题,似乎.vimrc实际上没有加载。知道是什么问题吗?

更新 verb set expandtab?或其他类似命令均返回 noexpandtab
Last set from ~/.vimrc
日志已粘贴这里。它包括我的 .vimrc、grep -rI结果和 的跟踪VIM -V9
expandtab 问题并非总是发生,下次发生时我会更新此帖子。 总是发生的另一个问题是set autoindent不起作用。verb set autoindent显示它未设置,请参阅最后几行周围的跟踪。 但实际上它已经在 中设置了.vimrc,我每次都必须手动设置它。 这类似于expandtab问题。

答案1

当您看到此行为时,请检查是否使用此命令设置了 expandtab:

:set expandtab?

如果未设置,vim 将返回 noexpandtab,这意味着在处理 .vimrc 之后某些东西对其进行了更改 - 一个插件、一个由 .vimrc 生成的文件,它创建了一个竞争条件,最后应用了设置,等等。

有几种不同的设置方法,因此您必须检查每种方法。以下命令将告诉您最后设置了 expandtab 的方法:

:verb set expandtab?

另请查看etexpandtab 的别名,例如:verb set et?invexpandtab,用于关闭/打开 expandtab,:verb set invexpandtab?

这应该向您显示 .vimrc 设置被覆盖的内容。

如果您发现 expandtab 值设置得当,并且制表符没有转换为空格,那么这是一个完全不同的问题 - 如果是这种情况,请发布对您的问题的更新。

更新:

因为它告诉你 .vimrc 是最后设置的,所以其中一定有直接或间接的东西在起作用。最好的办法是将 .vimrc 发布到 pastebin 或类似网站上,并发布指向它的链接。

您还可以将“set expandtab”作为 .vimrc 中的最后一项,因为它是按顺序处理的。

您提到其他设置与 vimrc 设置值不一致 - 哪些?

我还会通过 grep 遍历 .vim 目录和子目录来查找 expandtab ,但你可能会得到大量的误报。如果你这样做,grep -rI expandtab ~/.vim它可能会让我们回到 .vimrc 中可能被拉入的位置。

另外 - 尝试创建一个调试日志并检查其中是否存在任何错误警告等,尤其是(obv.)任何包含“expandtab”的日志

使用 -V[N] 选项运行 vim 将会产生大量的运行时日志,这里 N 是调试级别。

vim -V9myVimLog

将在当前目录中创建一个名为“myvimlog”的调试级别为 9 的日志

另一个问题

最好的办法是发布你的 .vimrc。确保混淆所有个人信息。

相关内容