首页 > 解决方案 > 如何解决 Atom 和 Vim 之间的制表符/空格问题

问题描述

我更喜欢在本地机器上用 Atom 编写脚本。但是,我在我大学的集群上运行了很多,当我需要更改一些小的东西时,我喜欢在 vim 中打开它并进行更改,而不是在本地机器上的 Atom 中编辑并从 GitHub 推/拉.

但是,当我在 vim 中打开我的脚本时,使用 tab 按钮,光标移动了 8 个空格。这特别烦人,因为我必须用空格做所有新的缩进。

在 Atom 中,我的制表符长度设置为 4 个空格,制表符类型设置为自动。我没有做任何事情来改变 vim 的默认值。

我应该在 Atom 中更改标签长度,还是有更好的解决方案?

标签: vimatom-editor

解决方案


在 Vim 中有几个设置可以用来控制它。它们如下:

  • tabstop, shiftwidth, 并softtabstop控制缩进的宽度。它们之间存在差异,您应该阅读每个文档以了解它们的作用,但粗略地说,如果您总是只想插入制表符或只插入空格,那么它们都应该设置为缩进的宽度(例如,4对于4 个空格或 4 个空格制表符)。
  • expandtab控制是否插入空格 ( expandtab) 或制表符 ( noexpandtab)。

您可以在您的这些选项中设置.vimrc一些默认值,如果您愿意,也可以明确指定特定的文件类型。例如,如果你知道 Python 更喜欢 4 个空格的缩进,而 Ruby 更喜欢 2 个空格的缩进,但 Go 更喜欢 8 个空格的制表符,你可以这样写:

  au FileType go            setl ts=8 sw=8 sts=8 noet
  au FileType python        setl ts=4 sw=4 sts=4 et
  au FileType ruby          setl ts=2 sw=2 sts=2 et

推荐阅读