写代码的时候,你是不是也这样。打开编辑器,敲了几行,手就不自觉摸向手机。刷个朋友圈,看一眼微信群,十五分钟过去了。
回来再看代码,思路全断了。这种事情我干过太多次。后来想了个办法,用Python写了个简单的专注计时器。它帮我盯着时间,让我知道现在该干嘛。
这个计时器的核心就一句话。闹钟响起之前,你不能碰手机。 如果非要碰,计时器会记录下你的摸鱼次数。
代码写起来很简单。先导入time模块,这是计时的基础。再定义一个focus_timer函数,参数是分钟数。循环里每一秒更新一次剩余时间,用print打印出来。注意用\r让输出在同一行更新,看着舒服。
我这里加了一个功能。每过五分钟,屏幕会闪一下绿色提示。不是那种烦人的弹窗,就是终端里print一句“加油,已经坚持X分钟”。这个反馈很重要。
我试过不少现成的番茄钟软件。有的功能太多,设置起来比写代码还麻烦。有的强制锁屏,万一真有急事要处理,解锁步骤能急死人。自己写的好处就是,想怎么改就怎么改。比如我加了个震动提醒,用\a字符,耳机能听到蜂鸣声。
遇到过最实际的问题。写代码到一半,突然想查个资料。这时候摸鱼的判定标准就模糊了。我的解决办法是,计时器只记录“非工作相关的解锁行为”。如果你用手机查文档,可以在计时器里按p键,它会暂停计时。查完继续。
这个暂停功能有次数限制。默认三次,超过了就不让暂停。这个设计帮了大忙。以前我总是“我就查一下”,然后变成刷半小时。现在每次按暂停键之前,都会问自己:这真的是查资料吗。
代码总共不到60行。用了datetime计算时间差,sys.stdout.write刷新控制台。不想用turtle那些花里胡哨的界面。黑底白字的终端就够了,看着清晰,也不分散注意力。
部署起来也简单。把脚本扔到一个固定目录,命令行里输入python focus.py 25,就开始一个25分钟的专注时段。哪天忘了写,就会看见终端里一串红色报错提醒。坚持一周后,摸鱼次数直线下降。从以前每小时刷五六次,变成现在最多一两次。
还有个彩蛋。如果你坚持完成了一个完整的工作时段,终端会随机打印一句鼓励的话。比如“这次不错,比昨天多写了十分钟”。这些话没有提前写死,是从一个列表里随机选的。每次收到奖励,感觉比产品上线还要爽。
要的只是这份掌控感。代码是你写的,规则是你定的,时间是你管的。没什么比这更让人踏实了。如果你也想试试,打开你的Python,把这段逻辑写下来。记得把专注时间设成25分钟,别太长,不然手会痒。