【发布时间】:2010-10-12 17:28:19
【问题描述】:
【问题讨论】:
【问题讨论】:
我很惊讶还没有人提出=%。
确保你有:set cindent,
将自己放在您所在街区的{} 之一上,然后点击:
=%
此块中的所有代码都将正确缩进。
【讨论】:
除了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) 等。除了块中包含的内容外,还选择 {}、() 等。
【讨论】:
我认为这将在不设置任何缩进开关的情况下完成。
:startRange,stopRange s/^/^\t/g
应在您提供的行号范围之间的行首添加一个制表符
取消缩进:
:startRange,stopRange s/^\t/^/g
【讨论】:
如果您有类似这样的未缩进代码...
if (foo)
{
/* line 1 */
/* line 2 */
/* line 3 */
}
...在命令模式下将光标放在“第 1 行”并输入 3==,其中 3 是要缩进的行数。
【讨论】:
插入时:C-d, C-t
而视觉:>,
正常时:>>、
在任何这种模式下使用'.'进一步缩进。
【讨论】:
试试
:设置 cindent
这将打开 vim 中的 C 缩进魔法。所以只要你打开一个大括号,它就会自动跳格,直到你关闭大括号。
【讨论】:
使用 '>' 标记一个块
【讨论】:
进入视觉模式,选择到下一个匹配的括号,缩进:
V
%
>
【讨论】: