让Vim AI遵循上一行的空格格式。

3
当我对代码进行缩进/格式化时,我使用制表符进行缩进,使用空格进行对齐。我认为这是直观的,并且非常有效地保持了代码的格式独立于其他程序员的制表符宽度(只要他们使用等宽字体)。
我喜欢让我的代码保持良好的格式,但这是 vim 中令我不爽的一件事情,我想知道是否有解决方案。在 vim 中使用 ai 格式,如果你有一行是 2 个制表符,后面跟着 9 个空格(假设制表符宽度为 4 个空格),当你输入新行时,vim 将使新行为 4 个制表符和 1 个空格。这不是期望的行为(我希望它像前一行一样是 2 个制表符和 9 个空格)。
我的问题是,这是否可能?如果不可能,为什么?如果可能,我该怎么做?
1个回答

2

在您的~/.vimrc中尝试以下内容:

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

如果当前缩进不是 tabstop 的倍数,它将添加空格。


这个方法可行,但是你能否详细解释一下最后一行的意思?我已经在我的rc文件中将制表位设置为4了,所以可能是我已经知道的内容,但我想确认一下。 - paquettg
另外,是否有办法使preserveindent在使用像>>和<<这样的命令时插入/删除开头的制表符?默认行为似乎不太理想。 - paquettg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接