我一直使用 vim 编写 perl,并且我开始过渡到 python,但我看到有人说如果你选择正确的编辑器,则不需要按空格 4 次,其中制表符转换为空格。
我喜欢 vim,并且不想移动。我从 5 年前就看到了这个 SO 线程,想知道这是否仍然是实现它的最佳方法,还是有更简单/更新的方法?
我一直使用 vim 编写 perl,并且我开始过渡到 python,但我看到有人说如果你选择正确的编辑器,则不需要按空格 4 次,其中制表符转换为空格。
我喜欢 vim,并且不想移动。我从 5 年前就看到了这个 SO 线程,想知道这是否仍然是实现它的最佳方法,还是有更简单/更新的方法?
根据我的经验,Python 中制表符和空格的最佳设置如下:
:set tabstop=8 shiftwidth=4 softtabstop=4 expandtab shiftround
解释:
由于您根本不会使用真正的制表符,因此我发现最好是明确的并将它们保留为传统的 8 列宽度,tabstop=8
. 您可以保留此设置,因为它是默认设置。
shiftwidth=4
并softtabstop=4
与expandtab
make 一起在插入模式以及缩进命令(如>
和<
. 它们确保您可以使用 tab 键进行缩进,但 Vim 将始终使用4 个空格来实现缩进。
最后,shiftround
是可选的:每当您到达某个奇数列时,例如第 11 列,任何缩进操作都会舍入到下一个“制表符”。缩进更多将进入第 13 列(过去的第 12 列:第三个“制表位”),缩进将进入第 9 列(过去的第 8 列:第二个“制表位”)
就像@elias 所说,如果你想让这些设置永久设置:autocmd
在你的vimrc中:
autocmd FileType python setlocal ts=8 sw=4 sts=4 et sr
我只是使用:
set sw=4 ts=4 expandtab
您可以使其仅适用于 Python:
au FileType python setlocal tabstop=4 shiftwidth=4 expandtab