昨天我说到,因为信息的干扰,我遭遇了思维障碍,花了很长时间才解决问题。今天,我想说一说问题解决之后的复盘。
绕路而行
昨天说到,由于 history
的干扰,我从一开始就走在错误的路上,而且走了很长的一段。等到了折腾了很长一段时间,实在找不着之后,我才停了下来,开始反思。由于有足够的 shell
的知识,我知道搜索引擎对 history
跟 prompt
这些关键词的理解跟我的需要相差甚远。
我想表达的是:命令行下的、自动的、历史命令的提示
。可是,很明显,搜索引擎在遇到 history
之类的关键词时,会给我关联度最高的 shell
本身相关的结果。所以,尽管我用了这些本身具有正确语义的关键词来搜索,但是,对于搜素引擎来说,我给的不是 正确的钩子,钓不起我想要的鱼。
想明白了这点之后,我开始用另一个方法找我想要的东西,结果一下子就找到了。
我是这样做的:
1. 命令自动提示这个功能,跟什么关联最密切?
2. 我很快想到:这个功能在 fish
上是支持的
3. 找一下 fish
的相关内容,看看能够找到什么线索
果不其然,一打开 fish
的首页,问题就解决了
原来在 shell 的世界里,我想要的功能叫 autosuggestions
! 很快,根据这个线索,组合出新的关键词 zsh autosuggestions
,我想找的插件一下子就找到了。
从它的介绍 Fish-like autosuggestions for zsh 看来,用
fish
做关键词搜索,是一个正确的思路,两者的关联度是很高的。
复盘
这次思维屏障的遭遇,虽然最后被我解决了,但是,它引发了我很多的思考。首先,我想到的是这么几个问题:
1. 为什么我以前能立马找到,这次却会久久苦寻无果。
2. 为什么我在使用错误的线索寻找,遭遇屏障之后还像硬怼栅栏的鸡一样不知道停下来?
3. 为什么我在冷静下来之后能够联想到 fish
对于第一个问题,其实在前文已经说明了,是因为我在给同学介绍时用了 历史命令自动提示 这样的字眼,于是 history
这颗错误的种子被不知不觉地埋在了我的意识里,导致我一直用 history
及相关的词语当关键词进行搜索。
现在想想,这是一件多可怕的事情呀——被自己误导。
对于第二个问题,我想这需要长久的练习才能逐渐改善。想一想,对于程序员来说,遇到百思不得其解的问题时,硬怼的情况少吗?有多少次,你能一下子就发现自己走在错误的方向上,而不是怼了很久无果,才告诉自己要冷静,冷静分析到底发生了什么事。
在 《超越感觉》一书中,有一个很好的方法,持续练习的话,肯定可以收获很好的效果
1. 脑子出现想法的时候,不要立即去执行
2. 问一下自己,为什么我会这样想,这个想法是怎么来的
3. 对于这个问题,有其他的思路吗?为什么我能想到这些思路
4. 综合比对所有方法,挑选出最靠谱的
如果能理清自己为什么能想到一个思路,那么,大概也就能确定这个思路本身是否可行了。与来一个想法试一遍的做法相比,先比较所有的方法,首先可以用自己的知识去验证方法是否可行,也可以在更大的范围内产生联想。
对于第三个问题的思考,更多地是引发了我对 记忆的本质 以及 如何更好地记忆 的思考。
首先,我能想到 fish,是因为当我思索什么东西跟命令行自动提示有关系时,我立马想到一副画面:我在实习的时候,看到一个同学的终端有自动提示,我问她是怎么做到的?她告诉我,那是 fish
。
我自己都不得不惊叹,记忆是这么强大的东西。
在我的记忆里,fish 跟 命令行历史自动提示,是具有强关联的。而在我思考这件事之前,我甚至都没有意识到这件事。