【问题标题】:Using gg=G in Vim to automatically tab a document when tabstop is modified在 Vim 中使用 gg=G 在修改 tabstop 时自动制表文档
【发布时间】:2017-12-20 13:25:42
【问题描述】:

通常,在 vim 中使用 gg=G 自动标记 C/C++/Java 代码或实际上任何类型的代码。

但是,我在 vim 的默认设置中将 tabstop 变量更改为 tabstop=2,这样每当我使用 Tab 时,我都会得到相当于 2 个空格而不是默认的 8 个空格。

现在,每当我使用 gg=G 时,我都会得到 4 个制表符而不是 1 个用于缩进,因此间距看起来与之前使用制表符 = 8 时相同。我只想要 1 个标签。有没有办法做到这一点?

(我使用硬制表符仅用于缩进,没有空格)。

【问题讨论】:

    标签: vim


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您正在寻找的是shiftwidthset 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 个制表符的长度等于两个空格。我只使用硬制表符进行缩进。抱歉,如果不清楚。
      • tab设置为其他值不是个好主意,您可以相应地更改该值。
      • @d223chen 然后将expandtab 关闭,但仍然更改shiftwidth :)
      猜你喜欢
      • 2011-03-17
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2020-04-30
      相关资源
      最近更新 更多