Emacs编程流
在Emacs中,不同的使用场景有不同的使用方法,有些场景需要直觉操作,有些场景需要效率优先。
日常Emacs使用场景简单总结主要有以下几类:
- 打开文件:通过find-file、dired或EAF文件管理器打开需要编辑的文件;
- 常用文件跳转:看一下顶部标签栏快速切换到另外一个常用文件;
- 文件模糊搜索:当打开文件过多时,通过标签栏找文件太费劲,更好的方式是通过搜索框架来模糊查找文件,比如Ivy、Helm和Snails;
- 文件对比:Emacs最好的设计,快速分屏,快速切换不同窗口中的文件
- 命令执行:通过M-x操作来执行一些复杂命令,这些命令平常不用,但是需要时往往想不起命令的名字,现在比较流行Smex
标签栏的优势
我们编程时,时间占用比最大的其实就是常用文件间的快速编辑和快速切换,社区常用的搜索框架都需要搜索一下关键字,特别是在专注思考编程问题时,频繁的关键字搜索对心智负担比较大,容易影响思考的流畅性。
当常用文件在10个以内时,标签栏的直觉化操作就非常方便,EmacsChina社区的一个道友还专门写了一篇文章Jump Between Buffers in a Slick Way来论述标签栏的优势。
更简洁的标签栏设计
今天花了几个小时写了一个新的标签栏插件Sort-Tab, 着重解决两个体验问题:
- 之前的Awesome-Tab虽然默认支持Project分组和自定义规则分组,但是这几年我使用的体验看,不管怎么分组都很麻烦,因为分组容易把两个经常编辑的文件分到两个不同的组(比如不如不同项目间借鉴代码、Web项目中不同编程语言的文件并列编辑等),导致我经常需要切换标签分组才能找到标签,很是麻烦;
- Emacser不喜欢标签栏的另外一个理由是分屏后标签栏占用太多的纵向空间,两个窗口之间有一条比较宽的分割线,看着不爽。
Sort-Tab相对于Awesome-Tab的优势主要有两个:标签分组策略和屏幕空间设计。
- 根据文件的使用频率来排序,这样使用的时间越长,相关的文件标签挨的越紧,基本上可以做到下意识的左右切换(借鉴了kinono的想法,很赞);
- 顶栏设计,抛弃了header-line和tab-line的设计, 所有窗口都共享一个标签栏,最大程度减少纵向空间的浪费,再配合Awesome-Tray,整体上可以实现非常简洁的视觉感官。
插件今天才写完,估计还有一些小问题,欢迎各位朋友试用反馈建议。;)