答案 0 :(得分:36)
我很惊讶没有人想出=%
确保您有:set cindent
,
把你自己放在你的{}
块之一,然后点击:
=%
此块中的所有代码都将正确缩进。
答案 1 :(得分:6)
进入可视模式,选择下一个匹配的括号,缩进:
V
%
>
答案 2 :(得分:4)
使用'>'标记块
答案 3 :(得分:2)
插入时:C-d,C-t
虽然视觉:>,<
正常时:>>,<<
在任何此模式中使用'。'进一步缩进。
答案 4 :(得分:1)
尝试
:设置cindent
这将在vim中打开C缩进魔法。因此,只要打开支架,它就会自动切换,直到你关闭支架。
答案 5 :(得分:0)
如果您有未缩减的代码,看起来像这样......
if (foo)
{
/* line 1 */
/* line 2 */
/* line 3 */
}
...在命令模式下将光标放在“第1行”并输入3==
,其中3是要缩进的行数。
答案 6 :(得分:0)
我认为没有设置任何缩进开关就会这样做。
:startRange,stopRange s/^/^\t/g
应在您提供的行号范围之间的行首添加标签空间
unindent with:
:startRange,stopRange s/^\t/^/g
答案 7 :(得分:0)
除了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)**
*
或者您的移动宽度设置为
**
vi}与viB相同,并且可能更容易记住,因为vi}在{}内选择,vi)选择in(),vi]在[]内选择,vi>在<>中选择。
此外,va},va)等除了块中包含的内容外,还要选择{},()等。