无任何符号或注释,每行独立编号)

昨晚突发奇想,琢磨着怎么能让代码或者日志看着干净点,最好别有任何括号冒号这种乱七八糟的东西,每行就老老实实带个顺序号完事。

我顺手打开电脑里一个文本文件试水,想着用vim搞个宏应该能搞定。

第一步:拿个测试文件开刀
  • 找了个纯文本的小说片段,塞进临时文件
  • 打开vim,第一反应是用内置的行号显示(:set number)
  • 结果发现这玩意儿只是临时印屏幕上,存盘的时候压根不往里写!
第二步:手搓替换命令
  • 转念琢磨用正则表达式硬上弓
  • 敲了串 :%s/^/\=line('.')/ 命令试水
  • 执行完差点哭出来——所有行前面都粘着当前行号,全文变成个大编号表
  • 赶紧按u撤销,后背直冒冷汗
第三步:硬着头皮写脚本
  • 切到终端临时写python脚本
  • 用enumerate循环读文件行,每行前插个计数
  • 存盘跑完打开一看:编号和正文黏在一起像芝麻糊
  • 拍脑门想起忘了加空格分隔
第四步:打印机送来暴击
  • 正改脚本,儿子作业本卡打印机了
  • 手忙脚乱拆机拔纸,墨粉糊满袖口
  • 回来瞪着屏幕愣是忘了写到哪行
第五步:晚上突击收尾
  • 哄睡孩子后猫厕所改最终版
  • 脚本加空格分隔符:*(f"{idx} {line}")
  • 运行后颤抖着手打开文件——123齐刷刷站左边,正文间隔一个空格
  • 还没笑出声就发现空行也被打上了编号

蹲在马桶盖上查文档,原来readline()会把空行读成'\n',if *()就能跳过。折腾到凌晨两点终于搞定,成果打印出来当杯垫——实践教会我的真理就是:追求极致简洁反而最费劲,工具永远该为人类服务而不是反过来折腾人。