拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
其實和原始寫法有很大關係。 #includeint main(int argc, char *argv[]){for(i in f){if(i ==9 ){printf("1");} else{printf("2");}}}如果像上面這樣子的習慣寫法,用gg=G 的結果很酷: #includeint main(int argc, #include
{
for(i in f){ if(i ==9 ){ printf("1"); }else{ printf("2"); } }
}
雷雷
其實我用比較多的是,在visual 模式下, 移到行最開始 按下:> 即 同時按下'shift + .'
!astyle --style=[你想要的格式] -p -H --suffix=none %
如果你裝了 astyle
第一步:ggvG ///< 先回到首行, 然后选择模式, 全选代码第二步:= ///
ggvG
=
ggvG=
對, 10086和tdblq沒有註意到題主對於括號的要求.
先上命令
%s/ {/^M{^M/g %s/ }/^M}/g %s/};/}/g %s/)\([^;]\+\);/)^M;/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進入行模式,然後直接按>右縮進,
其實和原始寫法有很大關係。
int main(int argc, char *argv[])#include
int main(int argc, char *argv[])
{
for(i in f){
if(i ==9 ){
printf("1");
} else{
printf("2");
}
}
}
如果像上面這樣子的習慣寫法,用gg=G 的結果很酷:
#include
int main(int argc,
#include
{
}
🎜堪稱完美。 🎜雷雷
其實我用比較多的是,在visual 模式下, 移到行最開始 按下:> 即 同時按下'shift + .'
!astyle --style=[你想要的格式] -p -H --suffix=none %
如果你裝了 astyle
第一步:
ggvG
///< 先回到首行, 然后选择模式, 全选代码第二步:
=
///gg
vG
=
對, 10086和tdblq沒有註意到題主對於括號的要求.
先上命令
第1~3行是在處理花括號的問題.
第4行是為了解決
第5~6行就是全文自動縮進了.
注意 其中的^M不是直接輸入的, 而是"ctrl+v"+"回車"得到的.
但是這些也不過是解決的是格式的問題.
題主說要從一個for循環的代碼"格式化"到一個有while的代碼,
我猜是筆誤吧?
其實嚴格來講,vim是搞不定的。 gg=G能作的只是以行為單位調整縮排。真的要lz那樣的需求需要外部工具,像是indent。假設你有一個完美的indent的配置。那麼在vim裡面可以用%!indent來搞定
選擇要縮排的行,大V進入行模式,然後直接按>右縮進,