11月11日小记

Posted by Felix on November 11, 2017

11月11日,本来是没啥含义的,后来人家弄出来说是光棍节,好吧,1111,16进制最大的数也还好,理解成4个1,反复提示一个人的话,对程序员朋友来说确实有点伤害,但程序员朋友有台好用的电脑,有个好用的键盘,有个好用的操作系统,有个好用的编辑器就ok了,女朋友什么的好像也不是那么急需。 后来天猫-京东大战,善于营销的天猫搞了个双11玩促销,当时说是一律五折,然后名声做起来了,中国的双十一有点类似美国的黑色星期五–购物节罢了。

说回双十一,这个日子本来和我一毛钱关系也没有,我还是和往常一样写代码而已,但是现在我对象了,但买买买也是她的事情,贴心的她把我的东西也一并买了,甚至我比我想到的还多。挺感谢有她的。

双十一的前一天,公司组织了一次编程大赛,赛题是路径规划–求两点间最短路径(要求打印距离和经过节点)。本来也是很普通很经典的一道题,按照课本上的解法主要有迪杰特斯拉算法(Dijkstra’s Algorithm)、弗洛伊德(Floyd’s Algorithm)和启发式搜索A*(A star Algorithm),当然DFS和BFS也是候选方案。

结果是没能写出来,有点小沮丧。做了一天,也累了,换换脑子搞点别的。于是折腾起VIM了。

Vim vs Emacs, 如果要比较得另开一篇,我是慕名而来的,想领略一番。学生时代便已入门Vim,一直不得要领。基本简单操作算是会了,比如写这篇博客。但是一些更高级的用法比如,把它当成IDE来用,从而减轻对其他IDE的依赖。这里要解释一下如何减轻,比如要修改一个项目的某个或几个文件,而且预计到修改不会很大,而且希望修改完了立马重新编译测试,这个时候启动一个笨重的IDE如IDEA或者Eclipse都是很不方便的事情。况且如果测试环境在服务器上,还得通过版本管理工具把代码同步过去,测试起来会更加麻烦。Vim恰好解决了这个痛点,它有基本的IDE功能,但是有没有那么笨重,而且是命令行界面,几乎服务器上都有。

Vim的强大一部分归功于它的设计,一部分归功于它的插件,多种插件配合起来,能够提供多种强大的功能。我一般也是从github上把人家的配置拷过来,直接安装即可,之前常用的tagbar,nerdtree,minibuffer,nerdcommeter这些都有了。但是还不够,我一直被另一个强大的功能所吸引,那就是YouCompleteMe!!!

正如网友所言,这个插件是出了奇地难装,但它的功能是如此强大,可以像IDE一样自动补全用户输入。这个对于长单词拼写、api拼写、路径名拼写有困难或者懒得拼写的人大有帮助,而我就是这样的人。因此,再难我也要搞定它。

根据网友的介绍,安装YCM主要vim、python、clang、YCM三方支持,看起来好像很简单的样子,实际上操作起来困难重重,你永远不知道会出现什么样的问题。

  1. vim,系统套件里面的一般不行,缺少python支持;
  2. python,需要python-dev;
  3. clang, 需要带上llvm;
  4. YCM, 从github上拉作者最新的就行; 三者同时有版本要求,具体我也不知道。往往是报错了看需要什么。

具体如何安装,请见下一篇 :)