我很惊讶还没有人提到 =%
。
确保你已经使用了:set cindent
,
把光标移动到你的代码块的一个 {}
上,然后只需要按下:
=%
此代码块中的所有代码将正确缩进。
进入可视模式,选择下一个匹配的括号,并进行缩进:
V
%
>
在插入模式下:按下C-d键,然后按C-t键
在可视化模式下:使用>和<键
在正常模式下:使用>>和<<键
在任何模式下,使用'.'来进一步缩进。
if (foo)
{
/* line 1 */
/* line 2 */
/* line 3 */
}
...在命令模式下将光标放置在“第1行”上,然后键入3==
,其中3是要缩进的行数。
我认为这样做可以避免设置任何缩进开关。
:startRange,stopRange s/^/^\t/g
在您提供的行号范围之间,在行首应添加一个制表符
使用以下方法取消缩进:
:startRange,stopRange s/^\t/^/g
除了skinp所说的,如果你有:
int foo()
{
/* line 1 */
/* line 2 */
/* line 3 */
/* line 4 */
}
如果出于某种原因,您希望它看起来像这样(即您希望将所有内容缩进4个空格*,而不是根据cindent规则进行正确的缩进):
int foo()
{
/* line 1 */
/* line 2 */
/* line 3 */
/* line 4 */
}
在代码块内的任何位置,执行 viB> (visualselection innerBlock indent)**
*
或者你设置的 shiftwidth
**
vi} 和 viB 是相同的,可能更容易记住,因为 vi} 选择 {} 内部,vi) 选择 () 内部,vi] 选择 [] 内部,vi> 选择 <> 内部。
此外,va}、va) 等不仅选择代码块内部,还选择 {}、() 等。