8
6 月

记一次debug的经历(非技术)

事情的开端是这样的,大概在1个月前,我发现iTerm无论什么指令,敲了回车之后都毫无输出了,比如键入clear之后不清屏,cd到某个目录下但是目录显示没变,简而言之就是所有指令都失效了。

但是如果仅仅是这样,那第一个想到的就是bash的配置有误,但是很神奇的是mac自带的terminal.app毫无问题,运行十分正常,所以我首先排除了bash本身配置或各种原因导致bash挂掉的原因。

作为一个程序员,我突然想起了网吧三件套,我第一个想到的就是重装嘛,于是我就删除了iTerm下载了最新版,发现依旧不行,于是我下载了历史各种节点的版本,也不行,于是作为cleanmymac正版软件的受害者,我觉得是不是缓存清理的不干净,导致有些配置还是用的出问题的那个版本,于是用cleanmymac彻底卸载了把所有配置文件的目录也删除了,发现还是不行。

作为一个程序员,于是我又想到了网吧三件套,我第二个想到的就是重启嘛,于是在经历了各种姿势的重启之后,发现还是不行。

作为一个程序员,于是我又想到了网吧三件套,我第三个想到的就是问google,结果查了一堆之后发现根本没有哪怕一个人聊过这个问题。

所以这个事情就很诡异了,作为Github上一个10k以上star的项目,我断定如果这是个通用问题,不可能只有我一个人碰到,于是我换了各种keyword去搜索,不知道是我英语太烂还是没表达清楚,连能给点思路的答案都没找到。

我刚说了,由于系统的Terminal可以使用,所以这并不影响到我的日常开发,所以我也没有特别关注这个事情,等到网吧三件套没有效果之后我就放任他去了。

在这期间发生了几件怪事

1.我发现source tree在我提交代码的时候写Update log发现空格不能用了,按了空格变成了快速查看文件

我第一时间跟码友表达了不瞒和愤懑,对sourcetree表达了不满(没人理我)

2.在这些天当中有一天我突然又删了一次iTerm发现没问题了,然后第二天开机后又不行了。

这是2个伏笔。

虽然Terminal 任然能用,但是我很多地方默认的终端都用了iTerm(比如alfred)所以其实要转回Terminal还是很烦的,所以今天做完开发任务,我打算跟他死磕到底(其实打算今天搞不定就切回用系统的了)。

于是我又发现了几件事情
1.Auto Complete功能好用

2.当我非内部输入指令,由外部传入指令的时候他是有效的,比如我安装插件,或者在外部运行sh脚本都没问题。

仔细检查了各种Profile和配置,确认没有任何问题之后,我于是崩溃了,开始在群里问下朋友有没有碰到过

结果我这群傻逼程序员朋友,非常给力

有问我电脑名字的Arthur

有比我还沉迷网吧三件套的Andy

还有趁机给我安利zsh的欧桑

就在焦头烂额之时,我无意中不知道按了什么….发现指令有效了

下面要开始解密了,真相很傻逼,各位大佬前方高能预警,非战斗人员速速撤离


我发现按了fn+回车,就有效了….尽管如此,这个结果也很傻比,于是我就各种查看和回忆关于设置快捷键的问题。终于….

我突然想起了大概几个月前,我的mac出现了很奇怪的问题,就是enter和space无效了,但是不是完全的无效,是按了fn+enter和fn+space之后就是这两个按键的效果,你也知道作为一个程序员,如果这两个按键需要按组合键有多操蛋,于是我情急之下,去买了BTT,然后做了个映射,把enter映射成fn+enter,space映射成fn+space,没错,这次的问题,就是因为这个该死的映射,然后可能在一个月前,这个bug消失了,但是映射一直在,并且软件随系统自启动,而这个bug不会影响到我写代码或者聊天,所以我也没注意。

然后你如果是mac你也可以试一下,在terminal里面fn+space可以执行指令,而在iTerm2不会

还记得我刚吐槽sourcetree那个事情吗?没错也是这个映射的原因,sourcetree我错了,我像你道歉。

还记得我刚说的某一天他突然好了吗,我现在回想,应该是哪天我关了BTT因为我的status bar不够长,所以我关了BTT,还记得我后半句说第二天又不行了吗,因为BTT……随机自启动…..

当时我除了卧槽都不知道说啥。然后Arthur给了我一个建议

还有黯然神伤的欧桑

写小说是不可能写小说的,一辈子都不可能写的,所以写个流水账,记录一下这个傻逼的debug过程吧,就酱