3

假设我有一段代码从一个文件复制到一个新的空白文件。原始文件中的代码按原样缩进,但是我想在放置新的空白文件时取消缩进代码。但是,我只想取消缩进到基本缩进,这意味着我不想删除所有缩进。有道理?

例如,将代码块粘贴到新创建的文件中时,它可能如下所示:

        <h1>Title</h1>
        <div>
            <p>This is a nested paragraph</p>
            <ul>
                <li>Even deeper!</li>
            </lu>
        </div>

我想用正则表达式和/或python创建一个函数,它将把上面的文本变成这样:

<h1>Title</h1>
<div>
    <p>This is a nested paragraph</p>
    <ul>
        <li>Even deeper!</li>
    </lu>
</div>

唯一的区别是前导缩进。

任何想法或帮助将不胜感激!

4

4 回答 4

5

查看模块中的dedent函数:http: //docs.python.org/library/textwrap.html#textwrap.dedenttextwrap

于 2012-07-17T21:06:58.657 回答
2

如果输入始终采用您提供的格式,您可以查看第一行有多少个制表符,并从该行和任何后续行中删除那么多制表符。

于 2012-07-17T21:05:36.007 回答
1

选择要缩进的文本并按

1) ctrl + [从每一行的开头删除一个制表符空间

2) ctrl + ]在每一行的开头添加一个选项卡。

未针对所有版本进行测试,但适用于 sublime text 2。

于 2014-03-14T08:22:55.217 回答
0

如果您使用emacs,您可以使用“盒子模式”命令删除缩进。您将标记和光标设置在定义框的文件区域上,然后键入 ctrl-x rk 以删除该框。奇迹般有效。

于 2012-07-17T21:09:56.237 回答