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