Archive for the ‘minimap’ tag
Emacs里面的MiniMap
Sublime Text的MiniMap比较有特色,正在想是不是能为Emacs也搞一个类似的东西,没想到已经有了。(不知道MiniMap是啥的,请移步Sublime Text的网站)
http://www.emacswiki.org/emacs/MiniMap
Emacs MiniMap的tricky之处在于,它并没有实现什么新的GUI控件,而是直接新开一个buffer,把font face缩小一下,达到MiniMap的类似效果。想出这法子的哥们可真行。
不过这也意味着MiniMap在字符界面是下不可用的——不过这谁又在乎呢,毕竟Sublime Text连CUI的版本都没有。在Emacs里面用这么小的代价实现相似的功能,一方面是Emacs这货实现是强大,另外一方面是写这东西的哥们实在也挺有想法的。
不过目前看来这个MiniMap功能是有了,但是体验不算特别好。用vertical split开的window在C-x 1之后就不见了,这可是很不爽的。依我的想法来看,能不能想办法让minimap window比较特殊一点,于是自己fork了一个别人已经做了修改的版本hack了一下。目前我主要hack了三个小地方:
1. 为delete-other-windows做了advice,总是保留MiniMap window;
2. 修正了make-overlay的一个错误参数,不改的话为空文件生成的overlay是不对的;
3. 只为图形界面的Emacs创建MiniMap,毕竟用了font face,在字符界面下意义不大。
随便改了一下,感兴趣的就拿走。
https://github.com/liuw/emacs-minimap
MiniMap的实现也不算特别稳定,有时会让Emacs死掉的。但是我没有那个水平,也懒得去debug了——说实话我还是用CUI的Emacs比较多点,看这东西单纯是觉得新奇而已。废话少说了,上图。
