如何在Vim中“向后制表”(删除制表符或制表符空格)?

r1zk6ea1  于 2023-04-12  发布在  其他
关注(0)|答案(5)|浏览(288)

有没有一种不用按退格键(不管我设置了多少个空格)就能快速向后跳的方法?

7dl7o3gd

7dl7o3gd1#

如果您处于插入模式:

  • Ctrl+d -左移
  • Ctrl+t -右移

如果您处于正常模式:

  • Shift+〈〈-左移当前行
  • Shift+〉〉-右移当前行

如果您处于可视模式,并且选择了一行或多行:

  • <-左移选择
  • >-向右移动选择

如果你只是想在正常模式下向后移动一个单词,你可以使用b来向后移动一个单词。

vtwuwzda

vtwuwzda2#

set softtabstop=4 expandtab

当你按tab键时,你可以添加最多四个空格,按<BS>键一次,你可以删除最多四个空格。

6jygbczu

6jygbczu3#

  • tl;dr:set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab*
  • 简短形式:set ts=4 sts=-1 sw=0 et*

说明

如果您将softtabstop(或sts)设置为-1,它将自动表现为与tabstopts)相同,这将为您节省一些麻烦,如果您更改了很多制表符。将shiftwidthsw)设置为0应该有效地使其与tabstop相同。

详细信息

shiftwidthsw
自动缩进每一步使用的空格数。用于cindent、〉〉、〈〈等。

当为零时,将使用tabstop值。

tabstopts
文件中a所占的空格数。另请参阅:retab命令和softtabstop选项。
softtabstopsts
在执行编辑操作(如插入Tab或使用BS)时,Tab所占的空格数。感觉就像插入了Tab,而实际上是空格和s的混合使用。这对于将tabs设置为标准值很有用,同时能够像设置为sts一样进行编辑。**当sts为负数时,使用shiftwidth的值。**如果您经常更改tabstop,这将保存一些麻烦。当expandtab未设置时,空格的数量将通过使用Tabs最小化。
expandtabet
在“插入”模式中:使用适当数量的空格插入a。空格用于使用〉和〈命令以及autoindent打开时的缩进。要在expandtab打开时插入真实的制表符,请使用Ctrl-VTab。另请参阅:retab

gt0wga4j

gt0wga4j4#

在正常模式下,<<将使当前行向后跳一次,在可视模式下,<将使所有选中的行向后跳一次

sycxhyv7

sycxhyv75#

在我看来,This question有更好的答案。与其使用backspace键一次清除4个空格,shift+tab将是一个很好的键盘快捷键(因为shift修饰符通常会反转另一个快捷方式的行为)。我熟悉的所有其他文本编辑软件都使用这个,但vim没有。然而,添加这个是微不足道的,这意味着softtabstop不需要使用:

set tabstop=4 shiftwidth=0 expandtab
inoremap <S-Tab> <C-d>

在插入模式下,你可以使用退格键删除单个空格,使用shift+tab删除4个制表符。如果你想坚持使用制表符,它也可以工作。

相关问题