Wie formatiere ich diesen Code schnell in vim?
高洛峰
高洛峰 2017-05-16 16:33:49
0
9
608
#include<stdio.h>
int main(int argc, char *argv[])
{
int i=0;
if (i != 0) {i++; }
else {i--; };
for(i=0;i<5;i++)j++;
printf("i=%d,j=%d\n",i,j);
return 0;
}

上面的代码如何快速格式化成这个样子?

#include 
int main(int argc ,char* argv[])
{
    int a = 4;
    int b = 5;
    int f_a = factorial(a);
    int f_b = factorial(b);
    while(1)
    {
        if(cmp(f_a,f_b))
        {
            printf("f_a is bigger than f_b\n");
        }
        else
        {
            printf("f_a is not bigger than f_b\n");
        }
        sleep(100);
    }     
    return 0;
    }
    
    不用插件,自己可否写一个简单的模板文件,用来格式化文件?
    
    10086的解答结果不对。
    ggvG
    =
    变成
    
#include<stdio.h>
int main(int argc, char *argv[])
{
        int i=0;
        if (i != 0) {i++; }
        else {i--; };
        for(i=0;i<5;i++)j++;
        printf("i=%d,j=%d\n",i,j);
        return 0;
}
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(9)
仅有的幸福

实际上和原始写法有很大关系。
#include<stdio.h>
int main(int argc, char *argv[])
{
for(i in f){
if(i ==9 ){
printf("1");
}else{
printf("2");
}
}
}
如果像上面这样子的习惯写法,用 gg=G 的结果很酷:
#include<stdio.h>
int main(int argc, char *argv[])
{

for(i in f){
    if(i ==9 ){
        printf("1");
    }else{
        printf("2");
    }
}

}

堪称完美。

左手右手慢动作

其实我用比较多的是,在visual 模式下, 移到行最开始 按下:> 即 同时按下'shift + .'

黄舟

!astyle --style=[你想要的格式] -p -H --suffix=none %

如果你装了 astyle

PHPzhong

第一步:ggvG ///< 先回到首行, 然后选择模式, 全选代码
第二步:= ///< = 一般用于均等布局, 这里表示代码缩进. vim 多splite下, 还可以 均等调整每个splite的大小

小葫芦

对, 10086和tdblq没有注意到题主对于括号的要求.

先上命令

%s/ {/^M{^M/g
%s/ }/^M}/g
%s/};/}/g
%s/)\([^;]\+\);/)^M\1;/g
gg
=G

第1~3行是在处理花括号的问题.

第4行是为了解决

for(i=0;i<5;i++)j++;
变成
for(i=0;i<5;i++)
    j++;

第5~6行就是全文自动缩进了.
注意 其中的^M不是直接输入的, 而是"ctrl+v"+"回车"得到的.

但是这些也不过是解决的是格式的问题.
题主说要从一个for循环的代码"格式化"到一个有while的代码,
我猜是笔误吧?

左手右手慢动作

其实严格来讲,vim是搞不定的。gg=G能作的只是以行为单位调整缩进。真的要lz那样的需求需要外部工具,比如indent。假设你有一个完美的indent的配置。那么在vim里面可以用%!indent来搞定

洪涛

选择要缩进的行,大V进入行模式,然后直接按>右缩进,<左缩进,一行一行自己排排就好了_(:з」∠)_

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage