如何在Vim中“倒退”(移除一个制表符或制表符空格)?

有没有一个快速的方式来后退,而不是按下退格键(然而,我已经设置了我的标签空间的空间数量很多)?

如果您处于插入模式:

  • Ctrl + d – 向左移
  • Ctrl + t – 右移

如果你在正常模式下:

  • Shift + << – 左移当前行
  • Shift + >> – 移动当前行

如果您处于可视模式并select了一行或多行:

  • 向左移动select
  • > – 移位select权

如果你的意思是在普通模式下向后移动一个单词,你可以用b向后走一个单词。

 set softtabstop=4 expandtab 

当按Tab键时,最多可以添加4个空格,按<BS>键最多可以删除4个空格。

在正常模式下, <<将选中当前行一个,在可视模式下, <将使所有选定行回退一次

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

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

说明

如果将softtabstop (或sts )设置为-1则它将自动执行与tabstopts )相同的操作,如果更改tab键,将会为您节省一些麻烦。 将shiftwidthsw )设置为0应该使tabstop同样如此。

详细

shiftwidth sw

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

tabstop ts

文件所占空间的数量。 另请参阅:retab命令和softtabstop选项。

softtabstop sts

执行编辑操作时Tab键计算的空间数量,如插入Tab或使用BS感觉 Tabs正在被插入,而实际上是使用了空格和s的混合。 这对于保持tabs设置在标准值是有用的,同时能够像设置为sts一样进行编辑。 sts为负时,使用shiftwidth的值。 如果你改变tabstops很多,这将为你节省一些麻烦。 当没有设置expandtab ,通过使用expandtab来最小化空格的数量。

expandtab et

在插入模式下:使用适当数量的空格插入一个。 在使用><命令时,在自动缩进时使用空格。 要在expandtab时插入实际选项卡,请使用CtrlV 选项卡 。 另见:retab