用Emacs的这些年
读技术博客时发现又有人提起我曾写的那篇口水文章 为何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的这些年的更多相关文章
- 的vim和emacs常用配置记录
因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...
- IntelliJ添加Emacs编辑器
Intellij只支持emacs as a external tool: https://www.jetbrains.com/help/idea/2016.2/tutorial-using-emacs ...
- ubuntu 下emacs 配置
(set-language-environment 'Chinese-GB) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-sys ...
- 我的emacs配置
我的emacs配置文件 ;; .emacs ;; ============================== Basic Configure START ====================== ...
- Emacs 配置文件
以下是我整理的 emacs 配置文件,供刚开始玩 emacs 的同学参考.网上有人说:emacs 是神的编辑器,如果能够用到这样的编辑器,那这个人就是神了.从我个人的经验来看,emacs 是一把利器, ...
- [emacs] 使用ggtags浏览代码
[emacs] 使用ggtags浏览代码 // */ // ]]> [emacs] 使用ggtags浏览代码 Table of Contents 1 相关的连接 2 global简介 2.1 ...
- Emacs学习心得之 LaTeX编辑
目录 1. 前言 2. texlive的安装 3. AUCTEX的安装和配置 4. RefTEX的安装和配置 一.前言 本篇博文记录了Emacs下LaTeX编辑环境的搭建,参考一下文章: http:/ ...
- 创建.emacs.d目录和.emacs文件
1.双击bin下的addpm.exe 2.HKEY_CURRENT_USER->Software->GNU->Emacs 新建字符串值HOME,数值数据为emacs的安装路径 3.创 ...
- MAC emacs下安装php-mode
在某一个个页面(抱歉不记得了), 比较了三个配置,php-mode, php-mode-improved, xnhtml. 作者在比较后推荐xnhtml,但在xnthml官网下载链接一直显示403,真 ...
- eclipse下的emacs风格快捷键
Ieclipse emacs类快捷键 win + shift + b 切换设置断点 win + shift + f 格式化代码 win + shift + l 显示绑定的快捷键 win + shift ...
随机推荐
- Node require
var user = require("./module_user");//使用模块 module_userconsole.log(user.userCount);user.use ...
- 小项目分析之C++ 实现模拟银行排队
一.问题定义与分析 问题定义 •要解决的问题——银行一天之内的: 1.总客户数 2.客户总逗留时间 3.客户平均逗留时间 问题分析 •新来的人找个短的队伍,站在队尾开始排队 •排在队头的人可以办理 ...
- 深入理解CSS绝对定位absolute
前面的话 前面已经介绍了定位的偏移和层叠,例子中大量的应用了绝对定位.因为相较于相对定位和固定定位,绝对定位在实际中应用频率更高.应用场景更广泛.本文将介绍使用绝对定位时的具体细节 定义 当元素绝对定 ...
- 全球最大轻博客APP确认被苹果下架!
读 苹果确认了App Store下架轻博客应用Tumblr,主要原因是,该应用没有很好的过滤掉一些成人内容(成人内容多到夸张),这严重影响了未成年人. 事实上,iPhone和iPad版Tumblr应用 ...
- BZOJ1093 ZJOI2007最大半连通子图(缩点+dp)
发现所谓半连通子图就是缩点后的一条链之后就是个模板题了.注意缩点后的重边.写了1h+真是没什么救了. #include<iostream> #include<cstdio> # ...
- Huawei运维记录
Huawei运维记录 01 Huawei运维记录-AC6005-8AP设备启动界面 02 Huawei运维记录-AC6005-8AP添加授权码 03 Huawei运维记录-AC6005版本升级步骤
- 【BZOJ4738/UOJ#276】汽水(点分治,分数规划)
[BZOJ4738/UOJ#276]汽水(点分治,分数规划) 题面 BZOJ UOJ 题解 今天考试的题目,虽然说是写完了,但是感觉还是半懂不懂的来着. 代码基本照着\(Anson\)爷的码的,orz ...
- 洛谷 P3155 [CQOI2009]叶子的染色 解题报告
P3155 [CQOI2009]叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到 ...
- django 关于视频播放
django实现视频播放并适配主流浏览器,应用比较广泛的就是videojs了. videojs: <head> <link href="http://vjs.zencdn. ...
- 洛谷P4383 林克卡特树
题意:树上最长不相交k条链. #include <cstdio> #include <algorithm> #include <cstring> typedef l ...