16

我用vim。具体来说,我正在使用Janus。我有 expandtab 集。但是,在使用 vim 的过程中,由于某种原因,我的 expandtab 设置被设置为 noexpandtab,并且我的文件开始获得硬制表符。我试过打字:verbose set expandtab?,但这并没有向我显示任何东西(具体来说,它向我显示noexpandtab已设置,但没有显示负责设置它的文件)。

所以我想知道:

  • 为什么我的 expandtab 设置可能会改变
  • 我如何追查罪魁祸首并防止其发生

谢谢

4

3 回答 3

11

试试这个

:verb set expandtab?
:verb set et?
:verb set invexpandtab?

expandtab实际上可以通过多种方式设置:/

于 2012-01-17T23:50:29.063 回答
6

如果您尝试以下操作,除了上述内容之外,我还应该添加:

:verb set expandtab?
:verb set et?
:verb set invexpandtab?

你回来时没有行号或文件:

noexpandtab

您很可能有以下情况并且需要更改顺序:

set expandtab

set binary
set noeol

更改为(注意顺序)

set binary
set noeol

set expandtab

原因是set binary命令在运行后执行了一些默认设置。包括以下内容:

'textwidth'  will be set to 0
'wrapmargin' will be set to 0
'modeline'   will be off
'expandtab'  will be off

我注意到 DavidWinterbottom 在他的评论中提到了这一点,但这似乎是唯一默认隐藏的评论,这导致我做更多必要的阅读,所以希望这篇文章能帮助另一个可怜的灵魂,避免浪费无数小时的追踪这个下来。

于 2014-11-13T05:12:13.187 回答
3

VIM 设置可以在配置文件中设置,也可以在您正在编辑的文件中的模式行中设置。请注意,expandtab可以在 VIM 中缩短为et,因此请务必同时查找。

我要寻找的可能的配置文件:

  1. /etc/vim/vimrc和该目录中的其他文件(有时vimrc.local等)
  2. $HOME/.vimrc

至于模式行,它们只是 VIM 的配置选项,位于文件本身的注释中。如果这只发生在某些文件而不是其他文件上,请查找类似于以下内容的注释:

/* vim: set noet ai tw=75: */

并尝试删除它们,看看是否有帮助。

于 2012-01-17T23:29:17.317 回答