Grey

全部学习汇总: GitHub – GreyZhang/editors_skills: Summary for some common editor skills I used.

emacs ivy以及counsel的常用功能

主要功能

ivy主要是实现一些emacs的minibuffer的操作增强功能的。如果不进行类似的增强扩展,在进行这方面相关操作的时候就会觉得信息非常拥堵。因为默认情况下的minibuffer能够提供的显示以及操控范围及方法非常有限。当使用spacemacs久了之后,可能会发现类似的操作不好容忍。
前面,我简单小结了一下如何用counsel-M-x替代掉原来的命令调用方式。其实,也是希望通过这种功能扩充交互的信息便捷性。这一次的内容梳理,其实基本上不涉及到什么新的插件探索,而是对我自己的配置中现有的插件功能进行更深入一点的发掘。

成熟的emacs配置中让我依赖的操作模式

为什么会有这样的一个探索过程呢?其实,还是尝试过的几种emacs的较为流行的配置带给我的印象过于深刻。除了功能之外,在交互的方式上也已经被灌入了他们的方式以及理念。那么,关于这次讨论的几个功能,我之前觉得哪些功能让我欲罢不能呢?这里做一个简单的整理。

  • minibuffer中find-file 比较好的功能不仅会提供一个信息展示充分的交互buffer,而且会提供模糊搜索,选择清单等功能。
  • 最近的文件查找 有时候,这个功能是我在各个文件中切换的一个很好的辅助功能。但是,emacs默认的recentf提供的功能以及交互的方式实在是有限。而且,与前面的这些描述的方式有些格格不入。更重要的一点是,在之前的使用经验中,我已经很习惯于minibuffer中依然能够一个类似find-file的模糊搜索功能了。这样,类似的功能就得进行改善革新。
  • M-x 这个不做过多的说明了,之前已经单独做了一个整理。这个其实是一种快速的功能调用方式,习惯了之后,我甚至少用快捷键直接用这种命令交互模式来处理我的工作。而且,最好这个能够提供一些最近的使用记录,并把使用次数作为权重。这样,会对整个的工作效率有很大的推进。
  • grep或者ag或者rg搜索 其实,这几个功能差不多,但是我尤其钟爱于ag。自然,rg现在的口碑不错,可能是习惯性问题,我觉得ag不错而且已经习惯了。这样的搜索,可以提供一个对目录内所有文件的内容检索。之后,给出结果候选操作清单。
  • 单文件的文字搜索 emacs内置的search可以,evil的模拟功能也可以。但是,更令我习惯的还是spacemacs中提供的swiper。这个功能把多种操作整合到了一起,一个操作基本上覆盖了大部分的需求。

常用的功能解决方案

序号

功能

实现方式

说明

1

minibuffer

helm或者ivy

处于轻量化的考虑,我现在用ivy

2

文件打开创建以及查找

counsel-find-file

3

最近文件查找搜索

counsel-recentf

4

M-x

counsel-M-x

5

多文件内容偶素所

counsel-ag

6

文件内搜索

swiper

这些插件之间都有一定的依赖关系,我其实是安装了一个counsel-etags之后获得了所有的插件包。

个人emacs的配置效果

  • 打开或者创建文件
  • 查看最近文件
  • M-x
  • swiper
  • ag searcher

小结

现在看上去虽然还有一些不完美,尤其是最后的乱码显示。但是,一般的工程开发,尤其是我这种嵌入式的软件开发已经有了很好的基础环境了。或许,后面再修改一下,结果会更加完美。