如何在vim中专门缩进代码块?

时间:2010-09-29 14:52:56

标签: vim

surprising number上有questions thissubject,但有些人没有回答我想要的内容。

我有一个代码块如下:

void foo {

somecodehere
morecode
...

}

正如您所看到的,我的函数的内容与我的代码块的其余部分在同一级别上是缩进。我目前所做的是>%在我的块的末尾(即}),它缩进整个块,包括带有花括号的行。

我想要做的是一个类似的命令,它在排除我的大括号之间缩进每一行。

我无法开始告诉你这会节省多少时间。

4 个答案:

答案 0 :(得分:13)

而不是映射新的东西,>i{似乎在这里做你想要的,但它会移动光标。

答案 1 :(得分:3)

将光标放在要缩进的块内,然后键入vi{>

v进入视觉模式。

i{选择最里面的{}块

内的所有内容

>缩进视觉块并返回正常模式

然后,您可以使用''将光标移回原始行。

N.B。如果您想缩进大括号,请将i{替换为a{

答案 2 :(得分:1)

插入

map sb v%><<%<<

进入你的 .vimrc (用你想要的任何组合键替换'sb')。 它将整个功能向右移动,然后是第一个和最后一个 回到左边。它适用于块的第一行或最后一行

答案 3 :(得分:1)

我使用的标记有时会很痛,但它有效 转到功能的最后一行(上方的行)) ma创建标记'a'
返回函数顶部并执行此操作。

  

&GT;`一个

只是缩进一级,直到达到标记a。