一键删除 Vim 中空格扩展的“选项卡”?

Evg*_*eny 21 vim

我用 Vim编辑Python代码。

使用tab密钥,我插入了四个空格以进行缩进。如何用一个“退格”(?)笔画删除这些空格 - 而不是四个?

必须有一些“设置”选项......

这是我的 .vimrc:

set autoindent
set ts=4
set sw=4
set et
Run Code Online (Sandbox Code Playgroud)

小智 32

set softtabstop=4
Run Code Online (Sandbox Code Playgroud)

  • IMO 这正是 OP 所要求的。值得更多赞。 (11认同)
  • 这是正确答案。 (2认同)

Gre*_*ill 25

您可以Ctrl+D用来备份一个制表位。这实际上将整行向左移动一个制表位;Ctrl+T向右做同样的事情。请注意,这些击键仅在插入模式下有效(在命令模式下使用<<>>等价物)。


Orw*_*ile 5

tl;博士: set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab

简写: set ts=4 sts=-1 sw=0 et

解释

如果您将softtabstop(或sts)设置为-1它,它将自动与tabstop( ts)行为相同,如果您经常更改 Tab 键,这将为您省去一些麻烦。将shiftwidth( sw)设置为也0应该有效地使其相同tabstop

详细

shiftwidth sw

(自动)缩进的每个步骤使用的空格数。使用cindent>><<
当零tabstop将被使用的价值。

tabstop ts

文件中的 a 计数的空格数。另请参阅 :retab命令和 softtabstop选项。

softtabstop sts

Tab执行编辑操作时a计数的空格数,例如插入 aTab或使用BS. 这 感觉就像Tab被插入S,而实际上使用的空间和s的组合。这对于将tabsis 设置保持为其标准值很有用,同时能够像设置为 一样进行编辑stssts为负时,使用的值shiftwidth如果您经常更改制表位,这将为您省去一些麻烦。如果expandtab没有设置,空格数是通过使用最小Tab秒。

expandtab et

在插入模式下:使用适当数量的空格插入 . 空格用于缩进><命令以及autoindent打开时。要在expandtab打开时插入实际选项卡,请使用Ctrl- V Tab。另见 :retab