空格作为Vim中的制表符和退格行为

bra*_*don 58 vim

在我的.vimrc中我有:

set shiftwidth=4
set tabstop=4
set expandtab
Run Code Online (Sandbox Code Playgroud)

当我点击Tab按钮时,设置为使用4个空格而不是制表符.但是当我在Tab后面击退格后,我需要退回所有4个空格.有没有办法这样做当我去退格一个"标签"它可以删除所有4个空格?

GWW*_*GWW 80

尝试 set softtabstop=4

  • 关于这些设置,我[确实很困惑](http://stackoverflow.com/questions/1562336/tab-vs-space-preferences-in-vim/1610732#1610732),所以我做了一个关于[标签和空格的截屏视频VIM(http://vimcasts.org/episodes/tabs-and-spaces/).我希望有助于澄清事情. (7认同)
  • 对我来说,这是从vim文档中的描述中理解的最难的基本选项之一.不能责怪任何人错过它."感觉就像插入了<Tabs>,而实际上是使用了空格和<Tab>的混合." 说什么?魔法? (2认同)

Gie*_*lis 8

您可以尝试使用^ T和^ D.

:help i_CTRL-T
:help i_CTRL-D
Run Code Online (Sandbox Code Playgroud)

这些允许插入或删除(更像是退格)一些等于shiftwidth的空格.

  • 好一个!如下映射给我一种自然的感觉:`inoremap <S-Tab> <Cd>` (2认同)