这篇文章用来总结自己对emacs的理解。本人之前使用过vim和sublime,现在主要使用emacs
Start
就编辑速度来说,是不会有编辑器比vim更快的了。我也常常将代码片段,或者日志,xml,考到sublime进行分析。多行编辑很实用。
但我在平时,主要还是使用emacs,无论是用它写博客,写代码,执行代码,写GTD,管理文档…都非常的方便。
键绑定
一个高效的编辑器,就是能够做到不用鼠标,编辑时在鼠标和键盘之间进行切换是一件很恼人的事情。这点在你抱着笔记本进行写作的时候会深有体会。
常用的快捷键:(C代表Ctrl,A代表Alt)
C-n 向下移动一个字符
C-p 向上移动一个字符
C-b 向左移动一个字符
C-f 向右移动一个字符
A-b 向左移动一个单词
A-f 向右移动一个单词
C-a 移动到行首
C-e 移动到行尾
C-@ 设置选择下标
C-w 剪贴选中区域
A-w 复制选中区域
C-l 将光标所在行,作为中心行,刷屏
C-x H 全选整个缓冲区。
C-k 删除光标后的整行内容
C-d 删除一个字母
M-d 删除一个单词
C-_ Undo
C-? Redo
C-s 查找
A-j 换行,与上一行保持同样的缩进
A-< 移动到文件头部
A-> 移动到文件尾部
C-x 3 左右分屏
C-x 2 上下分屏
C-x 1 除此屏全部关闭
C-x 0 关闭此屏
A-/ 补全
其它的一些也是因为不常用,基本不会去记它们的。
除了emacs自己的keybinding,我还特意做了些键绑定,提高效率。
1 | (global-set-key (kbd "C-M-h") 'backward-kill-word) |
实用的多功能
多窗口编辑,文件管理器,都是emacs多功能的一部分。甚至还可以配置git等外部程序,仅仅打开一个emacs就够了。
我的emacs还配置了以下实用的多功能
1 | ;; 快速的使用bing查找(直接在emacs中查找,然后就会弹出网页上的查找结果) |
写博客
我的博客是使用jekyll进行搭建的,所以日常,基本就是用markdown编辑完之后,用git推送到服务器。
这里要提的就是snippet,因为jekyll扩展了一部分的markdown语法格式,配置成snippet后,快速的插入模板片段非常有用。
比如我的sinppet:hl
就对应jekyll的语法高亮扩展。这要比markdown自带的语法高亮(缩进),功能强大一些。
markdown 高亮:
if i == 3:
print "人生苦短"
else:
print "我用python"
jekyll 高亮:
1 | if i == 3: |
写代码
我用emacs主要写的代码就是python,或者是其它的脚本,像是bash,反正我是不会用它写c#的,没有什么编辑器会比vs更适合写c#。
sinppet 是必不可少的了,python中能用到的snippet我都有配置,之前还配置过一部分和tornado相关的snippet。
我将emacs配置成可以弹窗出一个shell,我一般就在这个shell中执行python
或者直接弹出显示结果,但是这样不能错误信息,而且你的python代码末尾必须要有raw_input()
否则一闪
1 | ;; emacs弹窗,执行,当前的python |
不仅仅是键盘绑定,这些有关编程的emacs配置,也值得一提。
1 | ;; 好代码一行不应该超过80个字符 |
还有我的emacs主题是zenburn,这种主题看起来不扎眼,代码高亮美观。很舒服。
写GTD
我对GTD的理解,是要单独写的,这里只介绍用emacs写gtd的一部分内容。
emacs使用org模式来写GTD,基本上可以看作是*
做的一棵树,可以切TODO
和DONE
,展开,折叠,打标签。
这里插入我gtd的一部分:
* Blog
** DONE 我应该将我购买的域名挂到自己的网站上
CLOSED: [2014-09-11 Thu 13:30]
** TODO 翻译相关内容
* Book
** DONE 写给上班族的世界史
CLOSED: [2014-09-05 周五 22:15]
** DONE 方与圆
CLOSED: [2014-09-21 周日 23:30]
* 周末写两篇博客
** DONE 使用python的函数式编程和c#的linq来实现操作,而非迭代器
CLOSED: [2014-11-24 周一 11:29]
** 写一篇关于c#的迭代器和python的迭代器,
不要神话emacs
之前在学习emacs和vim的时候,网上有许多文章神话这两个编辑器,说是什么神的编辑器和编辑器之神。
其实如果说智能,它们是不会比VS智能的,emacs和vim最多也就是文本匹配,而vs却真正的在内部构建代码对象。emacs只是比较方便,比较自由而已,比较能折腾而已,要从实用角度出发,而不是做一个脑残粉。