我的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. Net开源网络爬虫

    转载.Net开源网络爬虫Abot介绍 .Net中也有很多很多开源的爬虫工具,abot就是其中之一.Abot是一个开源的.net爬虫,速度快,易于使用和扩展.项目的地址是https://code.goo ...

  2. 突破IP限制动态替换代理ip。

    须要导入的两个jar包 实现的javabean <span style="font-size:18px;">package com.jx.po; public clas ...

  3. Ionic项目中使用极光推送-android

    对于Ionic项目中使用消息推送服务,Ionic官方提供了ngCordova项目,这个里面的提供了用angularjs封装好的消息推送服务(官方文档),使用的是GitHub上的 PushPlugin ...

  4. TDD(测试驱动开发)学习二:创建第一个TDD程序

    本节我们将学习一些测试驱动开发环境的搭建,测试驱动开发概念和流程.所涉及的内容全部会以截图的形式贴出来,如果你也感兴趣,可以一步一步的跟着来做,如果你有任何问题,可以进行留言,我也会很高兴的为你答疑. ...

  5. Silverlight中的Path

    原文:Silverlight中的Path 在Silverlight中Path可能由直线.曲线.或者其他简单的图形对象组成.这篇文章旨在介绍如何使用XAML和C#来创建Path. 废话先行 Path可能 ...

  6. 用bat启动sqlserver服务

    声明下这个脚本不是我写的,忘了是从哪看到的了,在此分享给大家,因为在我的理解中技术就是用来分享的,,希望原创作者看到了不要介意. 1.创建个文本,将后缀名改成.bat 2.将下边语句粘贴进去,然后保存 ...

  7. Hadoop-2.4.1完全分布式环境搭建

      Hadoop-2.4.1完全分布式环境搭建   Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...

  8. .NET源代码的内部排序实现

    使用JetBrains的DotPeek工具能够方便地查看.net的部分源代码.于是看了一下.NET的内部是怎样实现排序的算法. 在System.Collections.Generic 命名空间下能够看 ...

  9. C++ - 模板类模板成员函数(member function template)隐式处理(implicit)变化

    模板类模板成员函数(member function template)隐式处理(implicit)变化 本文地址: http://blog.csdn.net/caroline_wendy/articl ...

  10. 学习使用简单的php

    配置文件在:/etc/php5/$中,不同的模式含有自己的php.ini配置文件.php可以运行于多种模式:cgi.fastcgi.cli.web模块模式等4种: 我现在使用的模式是cli模式,这里进 ...