十二月末,信山市的凛冬来临,天下起了大雪。
今年冬天格外的冷。
恰逢陈吟二十九岁冥诞,陈熠宵回来扫墓。他独自开车去了一趟墓园,回程的途中车堵成长龙,雨刮器不停摆动,拂开前窗上的冷雨和碎雪,夜色深浓。
他忽然想起陈政去外地谈生意了,家里没人在。
车道疏通时,他打着方向盘,车子拐了个弯,朝一条偏僻的小路驶去。
乌衣巷里静悄悄的,他下了车,冒雨匆匆跑了几步前去叩门。
屋里的唐玉阶坐在火炉子旁打盹,丝毫没听见前院的动静。陈熠宵正要给她打电话,手指摸到大衣口袋里的钥匙串,上面坠着一枚青色的、旧旧的钥匙,正是唐家的。
他当初走的时候,忘了还。
锁没有换。
时隔三年,他携着一身寒意钻进了唐家院子。
风雪夜归人。
陈熠宵进屋前在门框上敲了两下:“老师……”
唐玉阶裹着针织大披肩差点儿睡着了,额头磕在桌角上,迷蒙地望着站在几步开外的人,赶忙摸到搁一旁的眼镜戴上,仔细地盯着来人看了看。
“什么时候回来的?”
“今天下午。”
她也就诧异了一瞬,马上招呼人过来坐:“烤烤火,外面冷。”
等萦绕的困意慢慢散了,她也恢复了点儿精神,想起刚才那一幕,打趣道:“长大了,懂礼貌了,知道敲门了。”
陈熠宵不由得笑:“我以前很浑?”
“抽烟、喝酒、打群架,文身、飙车、泡网吧,什么中二就干什么,只差没烫头,也得亏你当时是个板寸头。”
“那时候不懂事。”
唐玉阶现在想想仍然觉得头疼,却又好笑:“打你打断了三根教鞭,从乌衣巷追到西斋路,我的鞋跟断了崴了脚,脚踝肿了一个星期。”
陈熠宵给她满上小火炉上温好的酒:“学生有愧。”
两个小巧的瓷杯在空气中相碰,响声清脆。
唐玉阶喝了一口,胃里便暖起来:“也该听话了,我老了,跑一条街就喘不过气来。”
陈熠宵宽慰她:“还年轻。”
唐玉阶释然地摆摆手:“前年配了老花眼镜,五十来岁,怎么也称不上年轻了。”
炉子里泛着猩红火光的木炭一明一灭,屋檐上的新雪又添一层。
唐玉阶兴许是过了乏困的点,又见着了这些年来心里十分惦记的学生,就多聊了一阵,不知不觉已经夜深。
“字练得如何了?”
她是他的书法启蒙老师,绕了一大圈,难免还是要问及课业,叫人防不胜防。
陈熠宵无奈,只好说:“每日一练。”
唐玉阶摸出最近新得来的两本字帖给他瞧。陈熠宵仔细一看,辨认出来,笑了:“您自己临的,能以假乱真。”
身后的五斗柜上,黄铜镇纸攒着厚厚一沓写完的小八尺毛边纸,新的压着旧的。
唐玉阶没有一天怠惰,言传身教,做到的何止每日一练。
“若思通楷则,少不如老;学成规矩,老不如少。思则老而愈妙,学乃少而可勉。”
“老有老的好,少有少的妙。”她说,“少年时学个规矩,年纪大了再深入钻研,从小学到老,总归不会错。”
姜永远都是老的辣。
陈熠宵虚心受教,盘算着要如何逃过一劫,恭敬地拍她马屁:“您说得对。”
“今天太晚,就不考你功课了。”
侥幸过关。
墙上的挂钟已经快走到十二点,唐玉阶站起身:“以前的房间还给你留着,没人动,收拾收拾就能住。”
陈熠宵答应下来:“您先去睡,我自己来收拾。”
“什么时候走?”唐玉阶问。
“明天上午,还得回学校参加期末考试。”
“算算日子,你现在已经大三了?”
“是。”
“时间过得真快,再有一年就毕业了。”唐玉阶感慨了一句,又问,“今年准备在哪儿过年?”
陈熠宵想了想,说:“回信山市。”
唐玉阶点点头:“正好,能跟唐拾和岑知聚一聚,再过一阵子他俩也该放寒假了。”
她慢步走出去,“吱呀”一声把厅门打开了。风灌进来,屋内的灯光如水银般流泻出去,漫入檐外的白梅树下。
白梅正盛放。
“老师,”陈熠宵叫住她,风声把话音吹得零散,“林岁寒有没有回来过?”
唐玉阶摇头:“她跟你一样,都是没良心的。”
陈熠宵低头笑笑:“我哪里比得过她。”
她可是不告而别,当年一句话也没留,走得潇潇洒洒。论没良心,他哪里比得过她。
卧室还是那间。
看着干净,像常年有人打扫。
陈熠宵曾在这里住过很长一段时日。没有被刻意搬动过的摆设里,处处留着他生活过的痕迹,窗台上攒着已经过期好几年的篮球杂志,为了保持书桌平衡在桌脚下塞的薄木片。练过的字都还在,一张张整齐地码着,放在抽屉里。
散在宣纸下面的,是凌乱的草稿纸,上面记着他写的一些小程序,笔迹凌乱。
陈熠宵一页页翻阅过去,发现了夹在中间的一页日记:
趁我午睡,她偷走了我晾在竹竿上最喜欢的那件T恤,在上面画了一只猪。
我要火速赶去揍她。
后面是一连串的省略号,直至纸上最后两行,接着潦草的几个字:
可我舍不得。猪也很可爱。
错误信息:Access to the path 'D:\website\xsnews3\zhumengyuedu.com\pc\link_cache.txt' is denied.
错误堆栈: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
at ASP.views_shared_footer_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)