在vim中对Python代码进行块缩进/取消缩进

4
我决定在我的Python代码中使用空格替代制表符。以前当我想在vim中缩进/取消缩进一段代码时,我会使用>><<命令。我使用了针对Python的vimrc设置 ,将其添加到我的~/.vimrc文件中。
source ~/.vimrc-python

目前看来,它将新标签设置为8个空格宽,并且当我进行块缩进/取消缩进时,它会将所有内容向右移动4个空格。

我应该如何使所有内容保持一致?


1
良好的参考:http://tedlogan.com/techblog3.html - askewchan
1个回答

6

请尝试以下方法:

set shiftwidth=4
set tabstop=4
set expandtab

shiftwidth表示使用操作符(<<>>)进行缩进的距离。

tabstop表示使用Tab键进行缩进的距离。

expandtab将制表符转换为空格。

正如[http://stackoverflow.com/users/2241874/bradd-szonye](Bradd Szonye)所指出的那样,您也可以以另一种方式完成。

set shiftwidth=4
set softtabstop=4
set tabstop=8
set expandtab

这意味着如果有一个实际的tab字符,它将显示为8个列,但按下tab键只会给出4个空格。

谢谢!我链接的文件中 tabstop 的设置为8,这很奇怪,因为它应该符合 pep8 指南。它还用于 C 源代码,所以我想知道是否这是两者之间的妥协。 - ryanjdillon
我必须承认我没有看过你的文件。它似乎试图确定文件是用C还是Python编写的,并相应地进行更改。如果您想保持选项卡简单/一致而不考虑语言,您可以将我的答案中的三行代码复制到您的~/.vimrc中,而不使用链接的文件。 - askewchan
是的,我一直在做这个,但我偶尔也会用C语言编写代码,所以认为这可能是一个不错的解决方案。 - ryanjdillon
我建议将tabstop=8保持不变,而将softtabstop=4设置为代替。这样,真正的制表符会遵循标准约定,但Tab键会添加四个空格。 - Bradd Szonye
谢谢@BraddSzonye,我已经采纳了你的建议。 - askewchan

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