使用Vim中的gg=G命令,在tabstop修改时自动进行文档缩进。

6
通常情况下,在vim中,人们使用gg=G来自动缩进C/C++/Java代码或实际上任何类型的代码。
然而,我在vim的默认设置中将我的tabstop变量更改为tabstop=2,这样每当我按Tab键时,我就会得到相当于2个空格而不是默认的8个空格。
现在,每当我使用gg=G时,我会得到4个制表符而不是1个缩进,以便间距看起来与我之前使用tabstop=8时相同。但我只想要1个制表符。有没有办法做到这一点?
(我仅在缩进时使用硬制表符,没有使用空格)。
2个回答

8
您要查找的是“shiftwidth”。对于您的情况,请设置“set sw=2”以获得适当的缩进。有关详细信息,请参阅“:help sw”。
与其更改“tabstop=2”,不如将其设置为“set softtabstop=2”。详情请参见“:help ts”。
对于源代码,通常最好展开“tab”,因为它不适用于源代码。
您可以在您的“vimrc”中设置以下设置。
set softtabstop=2
set shiftwidth=2
set expandtab

个人偏爱缩进 4。 使用 2,有时很难注意到缩进 :)


这将使缩进为2个空格,而不是长度等于两个空格的1个制表符。我仅使用硬制表符进行缩进。如果这不够清晰,我很抱歉。 - Ð..
将“设置”选项卡更改为其他值并不是一个好主意,您可以相应地更改该值。 - dlmeetei
@d223chen 那么可以关闭 expandtab,但是仍然调整 shiftwidth 的值 :) - hobbs

1
我找到了解决方案。 tabstop 是指手动按下 TAB 键时制表符的长度。使用 gg=G 时,它会使用一个名为 "shiftwidth" 的选项值。我将 set shiftwidth=2,现在自动缩进使用1个制表符而不是4个。 :)

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