VIMRC不反映对制表符间距的更改

VIMRC不反映对制表符间距的更改,vim,Vim,我希望修改我的vimrc文件,这样当我按下tab键时,它将缩进2个空格而不是4个。 目前我正在使用 我在vimrc中更改了以下行: set shiftwidth=4 set tabstop=4 进入: 然后使用:so$MYVIMRC重新启动我的vimrc 当我重新打开Vim并按下tab键时,它仍然是4个空格而不是2个。解决了!非常感谢你,正如robbrit指出的,我需要改变这一点 发件人: 到 解决了!非常感谢你,正如robbrit指出的,我需要改变这一点 发件人: 到 为了解释为什么会发生这

我希望修改我的vimrc文件,这样当我按下tab键时,它将缩进2个空格而不是4个。
目前我正在使用

我在vimrc中更改了以下行:

set shiftwidth=4
set tabstop=4
进入:

然后使用
:so$MYVIMRC
重新启动我的vimrc


当我重新打开Vim并按下tab键时,它仍然是4个空格而不是2个。

解决了!非常感谢你,正如robbrit指出的,我需要改变这一点 发件人:


解决了!非常感谢你,正如robbrit指出的,我需要改变这一点 发件人:


为了解释为什么会发生这种情况,
softtabstop
确定通过Tab键插入的空格数。实际插入的是制表符和空格字符的混合

tabstop
确定每个制表符“占用”的空格数

因此,当您按下Tab键时,Vim尝试使用Tab字符插入一个等于
softtabstop
的空格,然后用空格字符填充其余空格

示例:

  • softtabstop
    =4
    tabstop
    =2;插入2个制表符
  • softtabstop
    =2
    tabstop
    =2;插入1个制表符
  • softtabstop
    =6<代码>选项卡停止=4;插入1个制表符和2个空格字符

为了解释为什么会发生这种情况,
softtabstop
确定通过Tab键插入的空格数。实际插入的是制表符和空格字符的混合

tabstop
确定每个制表符“占用”的空格数

因此,当您按下Tab键时,Vim尝试使用Tab字符插入一个等于
softtabstop
的空格,然后用空格字符填充其余空格

示例:

  • softtabstop
    =4
    tabstop
    =2;插入2个制表符
  • softtabstop
    =2
    tabstop
    =2;插入1个制表符
  • softtabstop
    =6<代码>选项卡停止=4;插入1个制表符和2个空格字符

您的
命令可能有问题。尝试重新启动Vim,看看问题是否仍然存在。我退出了所有操作,关闭了终端,问题仍然存在。根据您的回答,我会假设我的代码看起来是正确的,并且有什么东西阻止了我的更改。是的,它是正确的。还可以尝试设置softtabstop=2,看看是否有效。您也可以尝试设置expandtab
@robbrit
expandtab
已在SPF13中设置,但是的,我同意,它应该始终处于启用状态。这只是一个老学生的请求:8点离开
tabstop
。大多数人都使用
expandtab
运行,这是有充分理由的,所以它不会产生任何效果——直到它产生效果,这时,就好像ASCII-TAB的tabstops出现在任何地方,但每8次都会打开一个没有任何好处的蠕虫。也许你的
so
命令有问题。尝试重新启动Vim,看看问题是否仍然存在。我退出了所有操作,关闭了终端,问题仍然存在。根据您的回答,我会假设我的代码看起来是正确的,并且有什么东西阻止了我的更改。是的,它是正确的。还可以尝试设置softtabstop=2,看看是否有效。您也可以尝试设置expandtab@robbrit
expandtab
已在SPF13中设置,但是的,我同意,它应该始终处于启用状态。这只是一个老学生的请求:8点离开
tabstop
。大多数人都使用
expandtab
运行,这是有充分理由的,所以它不会有任何效果——直到它起作用,在这一点上,就好像ASCII-TAB的tabstops在任何地方,但每8个都会打开一个没有任何好处的蠕虫罐头。
set shiftwidth=2
set tabstop=2
set softtabstop=4
set softtabstop=2