是否有一种快速的方法可以向后制表,而不需要按下退格键(无论我设置了多少个制表符空格)?
<
- 左移所选内容>
- 右移所选内容b
向后移动一个单词。inoremap <S-Tab> <C-d>
。 - Leon S.set softtabstop=4 expandtab
当您按下Tab键时,您可以添加最多四个空格,并通过按一次<BS>
来删除最多四个空格。
~/.vimrc
中,所以一定要让他们知道。简短版: set ts=4 sts=-1 sw=0 et
tl;dr: set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab
如果将softtabstop
(或sts
)设置为-1
,它将自动与tabstop
(ts
)相同,如果您经常更改缩进,则可以节省一些麻烦。将shiftwidth
(sw
)设置为0
应该也会使其与tabstop
相同。
shiftwidth
sw
每次(自动)缩进步骤要使用的空格数。 用于cindent、>>、<<等。
当值为零时将使用tabstop
值。
tabstop
ts
文件中计数的制表符空格数。 还请参见:retab命令和
softtabstop
选项。
softtabstop
sts
执行编辑操作时,例如插入Tab或使用BS,制表符计数的空格数。感觉就像正在插入Tab一样,实际上使用了空格和制表符的混合体。 这对于保持标准值处于
tabs
设置状态,同时能够像设置为sts
一样进行编辑非常有用。当sts
为负数时,将使用shiftwidth
的值。如果您经常更改选项卡停止位置,则会节省一些麻烦。 如果未设置expandtab
,则通过使用Tab最小化空格数。
expandtab
et
autoindent
开启的时候,空格会被用作缩进。如果expandtab
开启,想要插入一个真正的制表符,请使用Ctrl-V Tab。另请参阅:retab。<<
将把当前行向后缩进一格,在可视模式下,<
将使所有选定的行向后缩进一格。我认为这个问题有更好的答案。与其使用backspace
键一次清除4个空格,使用shift+tab
作为快捷键会更好(因为shift
修饰键通常可以反转其他快捷键的行为)。我熟悉的所有其他文本编辑软件都采用了这种方式,但vim没有。不过,添加它非常简单,这意味着不需要使用softtabstop
:
set tabstop=4 shiftwidth=0 expandtab
inoremap <S-Tab> <C-d>
softtabstop
而无需在文件中使用实际的制表符来完成。 - melpomene