我的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的,接下来吐槽一些还需要改进的地方,也许是我没有钻研透的因素,我认为目前有一些不足:

  1. 有点慢,这里说的是光标跟踪的有点慢,事实上用鼠标点击没有高亮的地方是可以的,不需要等高亮移动过来,但是作为早就接受了光标和高亮同步的人来说,心中总会莫名地觉得好慢
  2. 刷新手动,就是说文件改动后在文件管理栏其实是没有反应的,必须手动刷新才行,不知道为什么这样设计
  3. 没有文件管理功能,就是不能新建文件夹和新建文件.但是话说回来其实没有必要做这个功能,至少大部分情况来说(C-x C-f比鼠标选取加邮件新增要快一些)

虽然有缺点,但是speedbar也有些有点不容忽视

  1. 作为一个文本编辑器可以显示文件的版本控制状态,我觉得这一点蛮重要的,在协同写代码的时候方便很多.
  2. 每一个文件可以函数级展开,就像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只是作为辅助.

 

speedbar , tabbar 还有linum-mode的更多相关文章

  1. 我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode

    离上一篇博客已经很遥远了,最近总是各种逛,但没有心思静下来写点东西,这回写一下我之前用的一些东西. Speedbar 首先是speedbar,这个东西是emacs自带的,效果立竿见影,请输入M-x s ...

  2. 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum

    类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...

  3. 自定义tabBar

    ★★★★自定义tabBar★★★★★★★ Demo下载地址:https://github.com/marlonxlj/tabBarCustom.git 前言: 有的时候需求要对tabBar进行自定义的 ...

  4. react-native的tabbar和navigator混合使用

    前段时间搭建项目使用了navigator和react-native-tab-navigator,现在我教大家搭建一个通用的简单框架. 先把几张图贴在这里,这就是我们今天要搭建的东西,别看页面简单,但是 ...

  5. iOS 切换首页-更改tabbar的容器控制器

    最近想到的一个小需求: 首页切换:点击一个切换按钮,能实现首页的风格.排版等变换,原理是用一个新的VC替换掉. 效果如下:   ====>====> 实现方式很简单: 以我的Demo为例, ...

  6. weui tabbar 切换

    Html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <met ...

  7. 悬浮TabBar的实现--此段代码来自网络

    悬浮TabBar的实现 这个TabBar看着像是用自定义TabBar做的,但事实上它还是用的系统的TabBar,给系统的tabBar.backgroundImage设置一张设计好的背景图片. TabB ...

  8. 项目中 -- 设置tabBar样式 (旅游局)

    - (void)addChildViewController:(UIViewController *)ViewController image:(UIImage *)image selectImg:( ...

  9. iOS 有TabBar的VC界面push后隐藏TabBar的方法

    当一个UITabbarController管理多个UINavigationController的时候, 我们要从这每一个UINavigationController中push一个ViewControl ...

随机推荐

  1. 如何利用【百度地图API】进行定位?非GPS定位

    原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...

  2. 工作流Jpbm4.4工作流知识点总结(工作流开发宝典)

    原文:工作流Jpbm4.4工作流知识点总结(工作流开发宝典) Jbpm工作流开发过程中的一些知识点总结,方便以后开发使用! 目录: 一.工作流框架的搭建 二.工作流框架的流程开发 1.管理流程定义 ① ...

  3. css2与css3的区别

    css2与css3的区别 CSS3引进了一些新的元素新的特性,我收集以下,自己做了一个小结: animation(基础动画)eg:  div{animation: myfirst 5s linear ...

  4. POJ 1035 代码+具体的目光

    Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19319 Accepted: 7060 Descri ...

  5. view components介绍

    view components介绍 在ASP.NET MVC 6中,view components (VCs) 功能类似于虚拟视图,但是功能更加强大. VCs兼顾了视图和控制器的优点,你可以把VCs ...

  6. 真懂JavaScript吗

    你真懂JavaScript http://www.cnblogs.com/elegance/p/4195593.html 看了汤姆大叔的“你真懂JavaScript吗?”,里面有5道题目,我都一一作了 ...

  7. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

  8. Math.Round函数四舍五入

    Math.Round函数四舍五入的问题   今天客户跑过来跟我说,我们程序里面计算的价格不对,我检查了一下,发现价格是经过折算后的价格,结果是可能小数位较多,而单据上只能打印两位价格,所以就对价格调用 ...

  9. centos6的安装

      centos6的安装,一步一图,有图有真相     打开虚拟机VMware,点击文件,选择[新建虚拟机],如图所示

  10. Windows 8.1 store app 开发笔记

    原文:Windows 8.1 store app 开发笔记 零.简介 一切都要从博彦之星比赛说起.今年比赛的主题是使用Bing API(主要提到的有Bing Map API.Bing Translat ...