让vim ai遵守上一行的空格格式

让vim ai遵守上一行的空格格式,vim,Vim,当我缩进/格式化代码时,我使用制表符缩进,空格对齐。我觉得这是直观的,并且非常有效地保持代码的良好格式,与其他程序员的选项卡宽度无关(只要他们使用monospace) 我喜欢为其他潜在的开发人员保持良好的代码格式,这是vim的一个问题,让我很恼火,我想知道是否有解决方案。在vim中使用ai格式,如果输入新行时有一行是2个制表符,后跟9个空格(假设4个空格宽制表符),vim将有一行是4个制表符和1个空格。这不是期望的行为(我希望它是2个选项卡和9个空格,如前一行) 我的问题是,这可能吗?若否,原因

当我缩进/格式化代码时,我使用制表符缩进,空格对齐。我觉得这是直观的,并且非常有效地保持代码的良好格式,与其他程序员的选项卡宽度无关(只要他们使用monospace)

我喜欢为其他潜在的开发人员保持良好的代码格式,这是vim的一个问题,让我很恼火,我想知道是否有解决方案。在vim中使用ai格式,如果输入新行时有一行是2个制表符,后跟9个空格(假设4个空格宽制表符),vim将有一行是4个制表符和1个空格。这不是期望的行为(我希望它是2个选项卡和9个空格,如前一行)


我的问题是,这可能吗?若否,原因为何?如果是,我该怎么做?

在您的
~/.vimrc
中尝试以下操作:

set noexpandtab
set copyindent
set preserveindent
set softtabstop=0
set shiftwidth=4
set tabstop=4

如果您当前的缩进不是
tabstop

的倍数,那么它会添加空格,但您能详细说明最后一行的含义吗?我的rc中已经将tab stop设置为4,所以我可能知道这一点,但我想确定一下。另外,在使用>>和等命令时,是否有办法在开始时保留缩进插入/删除选项卡