为什么VIM内部的TAB在完成三个长字符后会移动一个空格?

时间:2017-07-06 10:47:41

标签: vim tabstop

在一个字符长度的单词或超过三个长度的单词后,TAB会移动4个空格。 我的.vimrc配置文件如下所示。

syntax on

" number of spaces moved along by pressing >>, << or ==
set shiftwidth=4

" number of spaces moved along by pressing the <TAB> or <BS> key
set softtabstop=4

set expandtab 

tabstop配置值设置为default,8。 我期待TAB无论如何都会向前移动4个空间。

1 个答案:

答案 0 :(得分:1)

当缩进时,vim会插入许多空格,它需要到达shiftwidth的下一个倍数。

在你的情况下,shiftwidth=4,所以vim插入空格,直到它到达第4列:只有一个空格。

如果你想让vim盲目插入四个空格,无论,请在你的vimrc中尝试以下内容:

inoremap <TAB> <space><space><space><space>

这将使vim插入4个空格。