Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vim中专门缩进代码块?_Vim - Fatal编程技术网

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

如何在vim中专门缩进代码块?,vim,Vim,有很多问题,但有一些问题没有一个能回答我的问题 我有一个代码块,如下所示: void foo { somecodehere morecode ... } 正如您所看到的,我的函数的核心是与代码块其余部分处于同一级别的缩进。我现在做的是在我的块(即})的末尾缩进整个块,包括带花括号的行 我想做的是一个类似的命令,它缩进之间的每一行,不包括我的花括号 我无法告诉您这将为我节省多少时间。插入 map sb v%><<%<< 映射sb v%>而不是映射新的内容,>i

有很多问题,但有一些问题没有一个能回答我的问题

我有一个代码块,如下所示:

void foo {

somecodehere
morecode
...

}
正如您所看到的,我的函数的核心是与代码块其余部分处于同一级别的缩进。我现在做的是在我的块(即
}
)的末尾缩进整个块,包括带花括号的行

我想做的是一个类似的命令,它缩进之间的每一行,不包括我的花括号

我无法告诉您这将为我节省多少时间。

插入

map sb v%><<%<<

映射sb v%>而不是映射新的内容,
>i{
似乎在这里做您想要做的事情,但它移动了光标。

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

v
进入可视模式

i{
选择最里面的{}块中的所有内容

缩进可视块并返回正常模式

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


注意:如果你想缩进大括号,那么用
a{
替换
i{
,我使用的标记有时会让人痛苦,但很有效。
转到函数的最后一行(位于}上方的那一行)
ma
创建标记“a”
返回函数顶部并执行此操作

>`a


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

使用
=
进行格式化(不是缩进,但对我来说会得到相同或更好的结果)。除非你不喜欢vim格式化代码的方式。
gg=G
将格式化整个文件。@这不完全是我想要的(有时我不想弄乱内部格式),但知道这一点也很有帮助。因此,sirI+1对您来说,移动光标单击是可以的。这肯定是我的Vim ness宝藏。