一个多行文本如何按照前缀最短空格缩进

2017-07-21 19:32:40 +08:00
 honmaple

假设有这样一个文本

    1234
      123456
        12345678
    1234

我想要按照前缀最短空格缩进,即上述文本最短空格为 4 ,就把整个文本都向左缩进 4 个空格

目前想到的方法是先遍历一遍,找出最短空格,再遍历一遍,逐行缩进,请教一下还有更好的方法吗?

1561 次点击
所在节点    Python
6 条回复
fyyz
2017-07-21 19:42:01 +08:00
基本上就是这个思路,没法再更简单了。
ywgx
2017-07-21 20:02:03 +08:00
楼主要是会 vi 的话,这就是 3 s 的问题
区块操作 瞬间完成,没法细说
honmaple
2017-07-22 11:31:14 +08:00
@ywgx 会 vi,但我需要使用程序进行处理,另外我记得 vi 貌似也没这个功能
ywgx
2017-07-22 11:35:48 +08:00
1. 首先确认 最短几个空格,比如 3 个
2. :%s/^_ *//g (祛除所以开头空格,下划线 表示一个空格的意思,注意)
3. :%/^/___/g (所有开开头加 3 个空格)


三秒解决问题
honmaple
2017-07-22 11:39:58 +08:00
@ywgx 先确认最短几个空格? 就是这一步也不只 3s 了吧
ywgx
2017-07-22 11:42:29 +08:00
嗯,你是对的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX