免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
1 [报告]
发表于 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
2 [报告]
发表于 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
3 [报告]
发表于 2007-10-18 01:41 |显示全部楼层
原帖由 lgfang 于 2007-10-15 09:19 发表


我的意思是写代码的过程中修修改改出现这种情况,然后希望进行对齐。换一种情形吧:假设原代码是

if a:
    aa
    if b:
        bb
    if c:
        cc

现在想把它改成

if a:
    aa
i ...

4. 你需要一个好的编辑器。vim和idle都可以。

论坛徽章:
0
4 [报告]
发表于 2007-10-20 03:48 |显示全部楼层
Sorry in advance. No Chinese Input Method installed. Can only view Chinese.

Within Vim

Goes into visual mode, select a block of code,  

to increase indention
CTRL + >
to decrease indention
CTRL + <
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP