免费注册 查看新帖 |

Chinaunix

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

谁能用python写一个自动把{ }转为缩进的小工具? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-30 12:47 |只看该作者 |倒序浏览
谁能用python写一个自动把{ }转为缩进的小工具?

实现无法忍受仅仅靠缩进实现层次定义的做法
如果能照样使用{ }来定义层次,就感觉稳妥多了
但是解释器显然不支持

要么改解释器?太恐怖了
要么写一个自动把{ }转为缩进的小工具,运行前自动转换一把?——会不会已经有这样的工具了??

论坛徽章:
0
2 [报告]
发表于 2007-09-30 13:52 |只看该作者
其实有缩进的代码是写代码的好习惯,慢慢应该就会适应了吧。我觉得用Tab也很好

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
3 [报告]
发表于 2007-10-01 00:12 |只看该作者
习惯了就好吧
PYTHON就是PYTHON嘛

论坛徽章:
0
4 [报告]
发表于 2007-10-01 10:03 |只看该作者
代码缩进是Python一个重要特色啊,你说无法忍受是你自己没去习惯啊。

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亚冠之广州恒大
日期:2015-07-22 17:20:15
5 [报告]
发表于 2007-10-02 16:59 |只看该作者
写完代码 用正则去处理下 呵呵不是很难

只是没有必要 如果习惯了python的缩行 也觉得挺好的

最开始我从C过来,也是不习惯,后来就好了

论坛徽章:
0
6 [报告]
发表于 2007-10-04 08:46 |只看该作者
我也不喜欢用缩进的方式来表示层次。带来很多不变,例如修改代码后无法对整个源文件进行自动对齐,因为有的情况是有歧义的。例如

  1. if a:
  2.     print a

  3.   if b:
  4.     print b
复制代码

无法确定作者是希望两个if块是同一级还是嵌套。

[ 本帖最后由 lgfang 于 2007-10-4 08:48 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-10-04 11:06 |只看该作者
原帖由 lgfang 于 2007-10-4 08:46 发表
我也不喜欢用缩进的方式来表示层次。带来很多不变,例如修改代码后无法对整个源文件进行自动对齐,因为有的情况是有歧义的。例如

if a:
    print a

  if b:
    print b

无法确定作者是希望两个if块 ...


1. 这段代码的风格非常糟。如果是嵌套的,第二个if应该和print a对齐,如果是并行的,则应该和第一个if对齐。这样吊在半空算什么事。
2. 这段代码在Python里面是非法的。
3. 如果这段代码的风格跟1所说的相同,那么Python就认了。所以Python的缩进能强制你养成良好的编码习惯。
4. 你需要一个好的编辑器。vim和idle都可以。

论坛徽章:
0
8 [报告]
发表于 2007-10-11 10:02 |只看该作者
搜索VIM的python插件搜到这来了,VIM里的缩进受不了,每次都得自己动手好麻烦

  1. def a:
  2.     foo
  3.     def b:
  4.         xxx
复制代码

第二个def还是跟foo去对齐了,挨球

膜拜下楼上的签名

论坛徽章:
0
9 [报告]
发表于 2007-10-11 11:30 |只看该作者
我用vim 7.0,不带任何插件,就是默认的安装。

我的.vimrc就这么几句

set sts=4
set sw=4
set et
set si

此外,还有一个能偷懒的缩写

iab improt import
iab pirnt print
iab teh the
iab __na __name__ == "__main__" :
iab __in __init__(self,

至于你说的问题。没办法,vim怎么判断你这个def是同上一个def并行的还是嵌套的?按一下backspace也不是太困难吧。

最后,我的签名,请继续用力膜拜。

论坛徽章:
0
10 [报告]
发表于 2007-10-11 12:02 |只看该作者
原帖由 shhgs 于 2007-10-11 11:30 发表
我用vim 7.0,不带任何插件,就是默认的安装。

... 没办法,vim怎么判断你这个def是同上一个def并行的还是嵌套的?按一下backspace也不是太困难吧。

最后,我的签名,请继续用力膜拜。


想想的确没法判断。
按四下backspace还是比较困难,我还是选择nmap ]x 04x。

再次强力膜拜。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP