我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode
离上一篇博客已经很遥远了,最近总是各种逛,但没有心思静下来写点东西,这回写一下我之前用的一些东西.
Speedbar
首先是speedbar,这个东西是emacs自带的,效果立竿见影,请输入M-x speedbar就可以看到,就是一个简单的文件树,对于sublime text熟悉的同学这玩意应该已经一目了然了,但是这个东西经过一段时间的使用可能会存在一些问题,我现在感觉speedbar离sublime text的左栏还是有一点距离的.不过当然也有一些弥补的办法.
首先,这个speedbar是单独一个窗口的,这对于窗口分配来说有一点不爽了,因为几乎所有的ide和编辑器都是在一起的,但是没有问题,请M-x list-package找sr-speedbar,然后配置你的文件,加入如下代码就可以了
(require 'sr-speedbar);;这句话是必须的
(add-hook 'after-init-hook '(lambda () (sr-speedbar-toggle)));;开启程序即启用
解释一下,第一行是必须的,但是第二行是如果你想开启emacs的时候这个东西就在的话可以加入这句话.另外在customize(输入M-x customize)里面可以有很多调节speedbar的地方,首先我们需要speedbar出现在左边,这里就要把Sr Speedbar Right Side:设为off.然后如果要在speedbar里面看所有文件的话(默认只显示emacs认识的文件)需要把Speedbar Show Unknown Files设置为on.或者说可以把常见到的需要加入speedbar中的文件的后缀名加入.这样设置基本上够用了.
前面说了我怎么配置speedbar的,接下来吐槽一些还需要改进的地方,也许是我没有钻研透的因素,我认为目前有一些不足:
- 有点慢,这里说的是光标跟踪的有点慢,事实上用鼠标点击没有高亮的地方是可以的,不需要等高亮移动过来,但是作为早就接受了光标和高亮同步的人来说,心中总会莫名地觉得好慢
- 刷新手动,就是说文件改动后在文件管理栏其实是没有反应的,必须手动刷新才行,不知道为什么这样设计
- 没有文件管理功能,就是不能新建文件夹和新建文件.但是话说回来其实没有必要做这个功能,至少大部分情况来说(C-x C-f比鼠标选取加邮件新增要快一些)
虽然有缺点,但是speedbar也有些有点不容忽视
- 作为一个文本编辑器可以显示文件的版本控制状态,我觉得这一点蛮重要的,在协同写代码的时候方便很多.
- 每一个文件可以函数级展开,就像IDE一样,这比绝大部分文本编辑器都强
今后我会再试试其他类型的文件管理侧栏,到时再为大家带来更详细的对比和配置.
Tabbar
在用惯了浏览器和标签式文本编辑器的我们可以说对于一个主力文本编辑器居然没有tab来切换buffer,而是用C-x b来切换buffer有些不能忍,于是理所应当的立即上tabbar,虽然StackOverFlow上有高手说tabbar不符合emacs熟练使用者的习惯,但是我作为初学者,应该先拿tabbar将就一下应该也未尝不可.
tabbar安装也是轻松又愉快地在list-package里面或者直接package-install安装,同speedbar一样我有些不满它的外观,所以安装了tabbar-ruler插件,这样会把tabbar整合到ruler栏里面,而且在打字的时候会出现ruler,移动鼠标又能变回tabbar,我觉得实在非常好用.
配置的话我就一条
(add-hook 'after-init-hook '(lambda () (tabbar-ruler-up)))
就是默认开了程序就启用tabbar,加上用customize启用了tabbar-ruler-global-ruler和tabbar-ruler-global-tabbar,这样tabbar就长存于窗口上了.
这里要解释下tabbar的逻辑和我们平常用的文本编辑器有些不一样(虽然可以调成一样的,但是我个人认为tabbar默认的更好),tabbar的显示并不是直接把所有的buffer都列出来直接显示在上面,这样的话谁看谁不爽,因为有太多例如*strach*这种关了又没准要用,不关又觉得碍眼的东西在.于是tabbar做出了创新:分组.
tabbar的buffer的分组是将两个用一样major mode的buffer分到一组,就是说,你自然可以看到你的python文件在一组,你的html又在一组,这样平均每组都有标签,找标签的时候也不用一个一个去找了,先通过模式找更好.左上角的上下箭头就是切换tabbar显示mode还是显示buffer名的.
Linum-mode
最后来介绍的最简单的,linum-mode,这东西就只有一个功能:显示行号,而且是emacs自带的,配置也很简单,(line-number-mode t)就可以了,这个可以在customize里面设置,唯一要注意的一点是它和speedbar有点冲突,所以我们需要在speedbar的window里面关闭它
(add-hook 'speedbar-mode-hook '(lambda () (linum-mode -1)))
这样就搞定了.
总的的来说emacs还是一个步步折腾的过程,但是我在其中感觉还是很好的,配置这些纠结的东西也是一个学习的过程,配出自己顺手的编辑器我个人觉得还是非常提升效率的,我已经把最常用的clojure开发基本上切换到了emacs上来.IntelliJ IDEA只是作为辅助.
我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode的更多相关文章
- 我的Emacs折腾经验谈(四) 也谈Yasnippet
又是好久没更新了,不过还好,现在慢慢有点感觉了,好长时间不写博客会心里有点感觉欠一点什么东西.觉得每次写了东西都往主页推搞得压力好大,以后就不往网站首页推了,纯留下来供参考,另外就是主要方便从搜索找过 ...
- Emacs折腾经验谈
Emacs折腾经验谈 这几天都没有动力写mongodb的东西,我果然还是太懒了么~ 主要是没有一个系统的东西整理出来,加上我令人拙计的语言表达能力,这个坑只能慢慢再补了. 最近在折腾emacs这个东西 ...
- 我的Emacs折腾经验谈(二) Emacs上手难的原因
既然之前说过要写我怎么继续折腾Emacs的,过了一个星期这里就是第二篇了,突然觉得我把blog这样分节不是很好,每次可能要凑一些东西才有该有的篇幅,而且说的东西可能东一点西一点,这样一篇看下来不利于检 ...
- 我的Emacs折腾经验谈(一) 一些给新人的建议
这几天都没有动力写mongodb的东西,我果然还是太懒了么~ 主要是没有一个系统的东西整理出来,加上我令人拙计的语言表达能力,这个坑只能慢慢再补了. 最近在折腾emacs这个东西,首先说我曾经算是个极 ...
- speedbar , tabbar 还有linum-mode
我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode 离上一篇博客已经很遥远了,最近总是各种逛,但没有心思静下来写点东西,这回写一下我之前用的一些东西. Spe ...
- emacs之配置7,tabbar插件
emacsConfig/tabbar-setting.el (require 'tabbar) (tabbar-mode ) (global-set-key (kbd "<M-up&g ...
- wr720n v4 折腾笔记(三):网络配置与扩充USB
0x01 前言 网络配置比较简单,但是USB拓展就麻烦许多了,这里由于overlay的内存分配问题导致软件安装失败,这里找到了一种方法就是直接从uboot刷入南浦月大神的wr720n的openwrt固 ...
- emacs配置详解及C/C++IDE全功能配置演示(附配置文件)
我的emacs插件下载地址: http://pan.baidu.com/share/link?shareid=4196458904&uk=3708780105 说明: 1.为什么使用emacs ...
- 新浪微博客户端(8)-添加按钮到TabBar
在tabBar的中部添加一个发送微博的按钮. DJTabBar.h #import <UIKit/UIKit.h> @class DJTabBar; @protocol DJTabBarD ...
随机推荐
- 浅谈 js 数字格式类型
原文:浅谈 js 数字格式类型 很多人也许只知道 ,123.456,0xff 之类的数字格式.其实 js 格式还有很多数字格式类型,比如 1., .1 这样的,也有 .1e2 这样的. 可能有人说这是 ...
- 多个Storyboard切换
- (void)showStoryboard { // 实例化MainStoryboard UIStoryboard *storyboard = [UIStoryboard storyboardWit ...
- POJ 1182(食物链-另类做法【拆点】)[Template:并查集]
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 46039 Accepted: 13400 Description ...
- Impala源代码分析---1
2.Impala源代码分析 參考链接:http://www.sizeofvoid.net/wp-content/uploads/ImpalaIntroduction2.pdf 本章開始进入源代码分析阶 ...
- C# .NET ASP.NET 其中关系你了解多少
有些人一直在做这方面..但突然有人来问你这些问题..估计有很多答不上来. 1..NET是一个平台,一个抽象的平台的概念. .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台. 个人理解. ...
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
原文:How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置 IS脚本操作注册表在64位平台下必须有特殊的设置 if (SYSINFO.bIsWow64) then ...
- Asp.Net MVC路由调试好帮手RouteDebugger
Asp.Net MVC路由调试好帮手RouteDebugger 1.获取方式 第一种方法: 在程序包控制台中执行命令 PM> Install-Package routedebugger 安装成功 ...
- 纯CSS隔行换色
原文:纯CSS隔行换色 <head> <meta http-equiv="Content-Type" content="text/html; chars ...
- SQL 2005 中查询或执行另外的数据库操作的方法
原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...
- WebStorm中Node.js项目配置教程(1)——创建项目
Node.js绝对是一个web开发的热点话题,作为web神器的WebStorm也是开发Node.js的佼佼者. 接下来就Node.js项目在WebStorm的配置操作就行详细的讲解,首先是创建项目.两 ...