在.vimrc中设置expandtab不生效

时间:2016-06-22 03:07:18

标签: vim

由于某种原因,set expandtab文件中的.vimrc命令没有任何效果。

这是我的.vimrc

" tab settings
set expandtab
set smarttab
set softtabstop=2
set tabstop=2
set shiftwidth=2
set paste

但是,当我运行vi(无文件名)时,:set命令会发出:

:set
--- Options ---
  helplang=en         shiftwidth=2        ttyfast
  paste               tabstop=2           ttymouse=xterm2
  fileencodings=ucs-bom,utf-8,default,latin1

表示未设置expandtab选项。通过执行:set expandtab?返回noexpandtab进一步确认。

我在OSX 10.10上,vi --help返回:

$ vi --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 20 2016 11:11:25)
MacOS X (unix) version
Included patches: 1-1847
Compiled by Homebrew

我的.vimrc中的某些设置如何被尊重,但set expandtab却没有?

2 个答案:

答案 0 :(得分:24)

来自expandtab的文档:

  

paste时会重置此选项   重置paste选项时设置和恢复选项。

顺便说一下,你可能不希望paste一直被设置。它通常用于粘贴到终端Vim以避免弄乱缩进等。

要通过一次按键方便地打开和关闭paste,您可以添加此快捷方式(将<F2>更改为您想要的任何键):

set pastetoggle=<F2>

答案 1 :(得分:4)

neovim遇到了同样的问题,无论我尝试了什么,我似乎都无法解决此问题。事实证明,在父目录中存在一个.editorconfig的{​​{1}}文件。通过在目录中使用indent_style=tab添加新的.editorconfig来解决(替代方法是删除或编辑父root = true文件)。

相关问题