免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4439 | 回复: 11
打印 上一主题 下一主题

格式化代码的脚本!!!!求指正! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-30 09:08 |只看该作者 |倒序浏览
本帖最后由 ghoull 于 2013-11-30 09:30 编辑

  最近写了个 格式化代码的脚本
  但无法回避代码中 正则中的{} 符号求大神修改!
  1. #!/usr/bin/perl -w

  2. use 5.010;
  3. use strict;

  4. my $flag=0;
  5. $_=do{local $/;<DATA>};

  6. s/(?<=[{}])|(?=[{}])/\n/g;    #在{}前后加上换行
  7. s/^\s+//mg;      #删除行首空格或空白行
  8. s/\{[\r\n]\K(?{$flag++})|[\r\n](?=\})\K(?{$flag--})|[\r\n]\K/'   'x$flag/eg;
  9. #添加缩进空格!

  10. print $_;
  11. __DATA__
  12.      #!/usr/bin/perl


  13. use 5.010;
  14. use strict;
  15.     use warnings;

  16. my @lines = 1..100;
  17. print &above_average(&average(@lines),@lines);

  18. sub average{my $result = 0;
  19. foreach (@_){$result += $_;
  20. $result += $_;
  21. $result += $_;
  22. }$result / ($#_+1) ;  
  23. }sub above_average{my $aver=shift;
  24. my @result=();
  25. foreach(@_){if($_ > $aver){push @result,$_;}
  26. }@result;}
复制代码

QQ图片20131130091532.jpg (30.62 KB, 下载次数: 43)

运行结果!

运行结果!

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
2 [报告]
发表于 2013-11-30 11:33 |只看该作者
#在{}前后加上换行
{:2_172:} 小伙伴们, 很多奇怪的换行
  • my $s =do{ local $/; <DATA> };
  • my $hash = { a => 1, b => 2 };
  • Hash{$a}{$b} = 6;
  • my @a = grep { $_ > 3 } 1 .. 6;
  • my @a = sort { $a <=> $b } @c;
  • my @a = sort { $c{a} <=> $c{$b} } keys %c;
  • ...


回复 1# ghoull


   

论坛徽章:
0
3 [报告]
发表于 2013-11-30 16:40 |只看该作者
回复 2# pitonas
是的 就是不能识别这样的类型的{} 语句中间的{}

   

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
4 [报告]
发表于 2013-12-01 16:42 |只看该作者
perltidy....

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
5 [报告]
发表于 2013-12-01 18:54 |只看该作者
在vim里把当前窗口的代码用 perltidy 格式化的命令是怎么写的?vim 自己的略呆

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
6 [报告]
发表于 2013-12-02 04:58 来自手机 |只看该作者
stack overflow 有人给过不错的solution Google下

论坛徽章:
0
7 [报告]
发表于 2013-12-02 08:42 |只看该作者
看来我这个只能适用格式化C语言了啊!!!!!!!!!!

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
8 [报告]
发表于 2013-12-02 08:44 |只看该作者
回复 5# zhlong8
  1. map <f9> <esc>:wall<cr><esc>:cs reset<cr><esc>1G=G<cr><esc>:%s/\s*$//<cr><esc>:noh<cr><esc>2<C-o><cr>

  2. autocmd BufRead,BufNewFile *.pl set filetype=perl
  3. autocmd BufRead,BufNewFile *.pm set filetype=perl

  4. autocmd BufRead,BufNewFile *.pl set syntax=perl
  5. autocmd BufRead,BufNewFile *.pm set syntax=perl

  6. autocmd BufRead,BufNewFile *.pl set equalprg=perltidy
  7. autocmd BufRead,BufNewFile *.pm set equalprg=perltidy
复制代码
Just hit the F9.




   

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
9 [报告]
发表于 2013-12-02 09:02 |只看该作者
回复 8# fender0107401


    谢谢我只需要最后两行,gg=G 这个还是很顺手的

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
10 [报告]
发表于 2013-12-02 09:07 |只看该作者
回复 9# zhlong8

我习惯猛击F9。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP