我编辑Python使用 Vim 编写代码。
使用这个tab键,我插入了四个空格用于缩进。我怎样才能用一次“Backspace”(?) 删除这些空格 - 而不是四次?
必须有一些“设置”选项......
这是我的.vimrc:
set autoindent
set ts=4
set sw=4
set et
答案1
您可以使用Ctrl+D向后移动一个制表位。这实际上将整行向左移动一个制表位;Ctrl+T向右移动一个制表位。请注意,这些按键仅在插入模式下有效(在命令模式下使用<<
和可获得等效效果)。>>
答案2
set softtabstop=4
答案3
总结:set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab
简写:set ts=4 sts=-1 sw=0 et
解释
如果您将softtabstop
(或sts
) 设置为,它将自动表现得与( )-1
相同,如果您经常更改制表符,这将为您省去一些麻烦。将( ) 设置为也应该可以有效地使其与 相同。tabstop
ts
shiftwidth
sw
0
tabstop
详细
shiftwidth
sw
每一步(自动)缩进使用的空格数。用于
cindent
、>>、<<等。
当为零时,tabstop
将使用该值。
tabstop
ts
文件中 a 所占的空格数。另请参阅 :重新标签命令和
softtabstop
选项。
softtabstop
sts
Tab执行编辑操作(例如插入Tab或使用 )时a 所占的空格数BS。它 感觉比如Tab插入了 s,而实际上使用的是空格和 s 的混合。这对于保持
tabs
is 设置处于其标准值很有用,同时能够像将其设置为 一样进行编辑sts
。 当 为负数时,使用sts
的值。shiftwidth
如果您经常更改制表位,这将为您省去一些麻烦。当expandtab
未设置时,使用 s 可最大限度地减少空格数Tab。
expandtab
et
在插入模式下:使用适当数量的空格插入 。当 处于打开状态时,空格用于缩进>和<命令。要在处于打开状态
autoindent
时插入真正的制表符,请使用- 。另请参阅expandtab
CtrlV Tab:重新标签
答案4
几个选项:
- 您可以“重新标记”所有空格,以便用制表符替换它们。这样就可以轻松删除它们。
- 您可以(这未经测试,因此我在此仅提出想法)创建一个函数,在正常模式下“执行”4 次退格键。然后将其映射到某个东西。但是,它无法知道是否会删除空格或某些重要字符,因此这可能是不安全的。
- “4X”将删除最后 4 个字符(这是大 X,而不是小 X,小 X 将起到 Del 键的作用)。