读技术博客时发现又有人提起我曾写的那篇口水文章 为何Emacs和Vim被称为两大神器。写那篇文章时,我还在Vim和Emacs之间摇摆。当然主要在用vim,博士学位论文和所有的国际会议文章都是用Vim编辑,latex编译生成的。

从写文到现在,快8年时间了,这八年时间我一直在用Emacs,只有在没有Emacs的环境下才会用vim或者vi。我是怎么从Vim转投Emacs阵营的呢?

写那篇水文的时候,还没有结束博士学业。写文后不久就奔赴工作岗位了。在单位需要做一个java项目,和别人一起,所以随大流地用了Eclipse。用Eclipse时一直用它的Emacs键绑定,结果项目一期结束时,我对Emacs按键很熟了。所以很自然地就用起Emacs了,狠心地抛弃Vim。就像当初学会了双拼输入,狠心地抛弃五笔一样。

后来再做java项目,我自己能做主,就没再用Eclipse,全部用Emacs完成。要什么对象成员提示,有javadoc就足够了。IDE中的提示只会让懒人不求甚解,看javadoc才能看到类的继承层次、接口的详细说明。因为在单位连接互联网不方便,这种情况用Maven构建项目是不适合的。于是我就动手写了一个针对java项目的通用makefile。当然这也是一个半成品,不能解决代码间循环依赖的问题。但对我自己来说够用了。这就是我的优点,不难为别人也不难为自己,遇到困难就含糊过去了,当然也是个缺点。

后来我去了做国产操作系统的公司,大家都在Linux环境下开发,我对Emacs更是爱不释手。代码、文档、日记都在Emacs中写,还用Emacs org模式写写我那些不能发表的小说。这段时间,Emacs写了不少python代码,也写了一些c代码,完全没有压力。

再后来,去一家公司做了半年NLP,训练机器翻译的模型,部署机器翻译的服务,这段时间用Emacs写了几个用maven管理的java项目,也写了一些python程序。TDD(测试驱动开发)帮了我不小的忙。

今年,走人才引进的路子,我又跑到高校来了。现在觉得编程没问题,写论文成为比较困难的事情了。这些天一直在找方向。计算机图形学的论文都很漂亮,但是这玩意儿似乎太难了。让我用SDL和OpenGL写个二维三维动画和小游戏什么的还可以,去改进算法实现,对我这数学渣来说,恐怕难为我了。机器学习大热,虽然也打下点基础了,可不是热情所在。再说就是做机器学习,也得先定个领域啊。按我的知识结构和热情所在,我想玩玩嵌入式操作系统,想写写嵌入式OS。但这东西似乎不好发文章啊,想灌个SCI一区二区的水,太不容易,想灌个三区四区的水,还得往物联网上靠才行。现在是摩拳擦掌想煮米,但还没有找到锅。

有点跑题了,还是说回Emacs和Vim吧。我觉得最终投奔Emacs还是投奔vim,和性格有关。我用Vim时,觉得心不静,用Emacs却有心静如水的感觉。虽然Emacs按键繁琐一些,都是key chain,但架不住你爱她啊。

不用纠结用Emacs的人少,用Vim的人多,Sublime的UI更友好等这类问题,都是shit。用Vim的人虽多,其中很多人都是像用windows记事本一样在操作光标呢,所以他们觉得vim还没有windows notepad好用。

还有,不要纠结Emacs代码补全不好用什么的,别人只是一个编辑器,你为什么要用IDE的标准来要求它呢?让我用IDE我还不习惯呢,上半年在公司时,同事让我用intellij idea,这号称最好的java IDE老偷偷摸摸在后台建索引占用我的CPU资源,我敲字的时候,老弹出补全候选项,干扰我的思路。还有写个scala文件,只要有main入口,你右键一点就能运行了,凭什么?你凭什么替我做这些工作,我不知道你给java命令行传递了哪些参数,你只会让我变懒,让我依赖你。我写了测试用例,用mvn test,照样能测试我的程序,为什么用你呢?

果断删除,我就要用Emacs和mvn命令行来做项目,我就要装逼,就是这么任性。再说我又没耽误工作。

用什么工具来做事,也是个性使然吧,就像我喜欢开手动档汽车,不喜欢开自动档汽车一样。

现在和八年前相比,我有什么长进呢?八年前我还和师兄弟打DOTA,现在不碰游戏了。时光一去用不会,往事只能回味,浪费的时间永远追不回了。就像我东搞搞西搞搞,频繁地换工作,到现在不可能再有大的做为了,只能安心做个平凡人了。

打游戏浪费时间,折腾工作环境也是浪费时间。我现在也很少折腾Linux环境了。环境折腾得再标新立异,也不代表你水平多高。把做正事的时间挤没了,有什么用。这都是很浪费时间的事情。上次我升级了一下自己的ArchLinux,结果无线网卡怎么也支持不了,自己编译的无线模块也加载不了。果断回滚到我升级之前的状态。这样又可以工作了。换作过去,我非得花个一两天时间把这个问题解决了。这就是说,年纪大了,玩不起了。

用Emacs的这些年的更多相关文章

  1. 的vim和emacs常用配置记录

    因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...

  2. IntelliJ添加Emacs编辑器

    Intellij只支持emacs as a external tool: https://www.jetbrains.com/help/idea/2016.2/tutorial-using-emacs ...

  3. ubuntu 下emacs 配置

    (set-language-environment 'Chinese-GB) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-sys ...

  4. 我的emacs配置

    我的emacs配置文件 ;; .emacs ;; ============================== Basic Configure START ====================== ...

  5. Emacs 配置文件

    以下是我整理的 emacs 配置文件,供刚开始玩 emacs 的同学参考.网上有人说:emacs 是神的编辑器,如果能够用到这样的编辑器,那这个人就是神了.从我个人的经验来看,emacs 是一把利器, ...

  6. [emacs] 使用ggtags浏览代码

    [emacs] 使用ggtags浏览代码 // */ // ]]>   [emacs] 使用ggtags浏览代码 Table of Contents 1 相关的连接 2 global简介 2.1 ...

  7. Emacs学习心得之 LaTeX编辑

    目录 1. 前言 2. texlive的安装 3. AUCTEX的安装和配置 4. RefTEX的安装和配置 一.前言 本篇博文记录了Emacs下LaTeX编辑环境的搭建,参考一下文章: http:/ ...

  8. 创建.emacs.d目录和.emacs文件

    1.双击bin下的addpm.exe 2.HKEY_CURRENT_USER->Software->GNU->Emacs 新建字符串值HOME,数值数据为emacs的安装路径 3.创 ...

  9. MAC emacs下安装php-mode

    在某一个个页面(抱歉不记得了), 比较了三个配置,php-mode, php-mode-improved, xnhtml. 作者在比较后推荐xnhtml,但在xnthml官网下载链接一直显示403,真 ...

  10. eclipse下的emacs风格快捷键

    Ieclipse emacs类快捷键 win + shift + b 切换设置断点 win + shift + f 格式化代码 win + shift + l 显示绑定的快捷键 win + shift ...

随机推荐

  1. PHP hexdec() 函数

    hexdec() 函数把十六进制转换为十进制. 语法 hexdec(hex_string) 参数 描述 hex_string 必需.规定要转换的十六进制数. 说明 返回与 hex_string 参数所 ...

  2. 如果filename的value有值 说明支持存储

    如果filename的value有值 说明支持存储

  3. ELK--filebeat命令行参数解释

    ./filebeat 使用-c命令行上的标志设置要加载的配置文件,可以通过重复-c标志来指定多个配置文件, 可以使用覆盖个别设置-E <setting>=<value>.< ...

  4. BZOJ2959长跑——LCT+并查集(LCT动态维护边双连通分量)

    题目描述 某校开展了同学们喜闻乐见的阳光长跑活动.为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动.一时间操场上熙熙攘攘,摩肩接踵,盛况空前. 为 ...

  5. BZOJ2796[Poi2012]Fibonacci Representation——贪心+二分查找

    题目描述 给出一个正整数x,问x最少能由多少个Fibonacci数加减算出. 例如1070=987+89-5-1,因此x=1070时答案是4. 输入 第一行一个正整数q (q<=10),表示有q ...

  6. SQL语言分类DQL,DML,DDL,DCL,DTL

    SQL语言共分为五大类: 数据查询语言DQL 数据操纵语言DML 数据定义语言DDL 数据控制语言DCL 数据事物语言DTL DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WH ...

  7. Educational Codeforces Round 26 B,C

    B. Flag of Berland 链接:http://codeforces.com/contest/837/problem/B 思路:题目要求判断三个字母是否是条纹型的,而且宽和高相同,那么先求出 ...

  8. Leetcode 237.删除链表中的节点 By Python

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 - ...

  9. 【bzoj1568】 JSOI2008—Blue Mary开公司

    http://www.lydsy.com/JudgeOnline/problem.php?id=1568 (题目链接) 题意 在线维护若干条直线,询问一些横坐标上的最高直线的纵坐标. Solution ...

  10. 隐藏技能go:linkname

    来源:https://blog.csdn.net/lastsweetop/article/details/78830772 什么是go:linkname 指令的格式如下: //go:linkname ...