spacemacs的buffer分类方法(利用Perspectives和layout功能)

来源:互联网 发布:c语言文件读写 编辑:程序博客网 时间:2024/06/08 08:38

  • 我是怎样使用spacemacs的
  • spacemacs的layout操作
  • 个人推荐的操作流程举例
  • 总结
  • 网上的一篇文章
  • 参考文档

虽说是针对spacemacs,但是emacs也是类似的(不过要装插件,使之支持layout)。

本文,重点其实是讲的如何使用“Perspectives”(spacemacs默认有一个菜单“Perspectives”,可见其很重要)。个人理解“Perspectives”可以极其方便的分组/分类文本buffer,意义很大,但是百度找不到相关介绍。

下文layout的概念,和Perspectives的概念,有点相似。但是一个layout可以包含多个Perspectives;每个layout都对应一个文本,以备重新加载之用。个人暂时理解为,平时只用一个layout,多个Perspectives就可以了;将来哪天换了一个项目,所有Perspectives不再常用,我就会新建一个layout。

我是怎样使用spacemacs的

我希望我的spacemacs工作流能达到什么效果. 我大多数时候用的都是命令行,随机在终端shell中运行.
我之前用过很长一段时间gvim,我习惯于快速打开一个文件,做一些修改,然后再关闭这个文件.
但是我也确实发现在spacemacs中同时打开多个文件也很有用.

上述gvim,相对spacemacs的操作行为。其优点:
1. 打开一个文件,响应速度非常快。【可以利用spacemacs的emacsclient功能,达到秒开目的;但是buffer显示过多,而且无法分类。】
2. 方便在一个屏幕上,显示所有相关文件内容。【spacemacs的窗口操作,也不错】
3. 打开的文件,很容易分类。比如前几个gvim窗口是工程1,后几个gvim窗口是工程2等。如果打开过多,就利用linux系统的工作区分开。【spacemacs的layout功能,可以完美解决。一个新的layout,可以作为一个分类,只保存关注的文件。】
缺点:
1. gvim窗口太多,时间长了,就容易忘记哪个文件在哪个gvim窗口;而且特别浪费内存资源。【spacemacs根据关键词选择buffer的能力很强,而且依赖layout功能,可以保存下来所有分类的buffer,比如关机后,一键打开自己期望的文件组】
2. spacemacs这个集大成的编辑器,比gvim功能要强大的多。

《我是怎样使用Emacs的》,这篇文章主要介绍emacsclient的知识,但是无法解决buffer过多不能分类的问题,导致很长时间,工作仍然使用gvim,而非spacemacs。

spacemacs的layout操作

这里写图片描述
这里写图片描述
spacemacs的project,也有SPC p l的操作,是转换到project并建立一个layout。

相关内容,可以参考视频
Spacemacs buffer, file, project and layout management—在线播放—优酷网,视频高清在线观看
http://v.youku.com/v_show/id_XMTM5NDI3NjQxMg==.html?spm=a2hzp.8253869.0.0&from=y1.7-2

个人推荐的操作流程举例

layout,个人理解就是窗口布局。
perspective,个人理解是视角(可以理解为windows里的桌面,或者linux里的工作区。方便分类编辑各种文本组)。默认是Default视角,如果更换视角话,spacemacs左下角会有视角名称显示。
这里写图片描述
这里写图片描述
这里写图片描述

perspective隶属于layout。
一个layout,包含多种perspective。
一个layout,对应一个文件,在目录.emacs.d/.cache/layouts里。layout更像是配置文件。

  • SPC l l ;打开或者新建一个perspective(虽然spacemacs写着layout,但是个人理解应改为perspective)。
  • SPC l 2 ;选择第二个perspective。
  • SPC l s;保存所有layout到一个文本里。在目录.emacs.d/.cache/layouts里
  • SPC l L;打开一个layout文件。里面包含了该layout下的所有视角。
  • SPC l b ;选择perspective的buffer。此时,buffer数目,不是spacemacs打开的所有buffer,只是在此视角下打开的buffer。默认是default视角,default视角类似普通emacs,把所有buffer都会放在default视角里。PS:SPC l b,相比SPC b b,可选择的buffer数目少,更清晰明了。

project1视角下的SPC l b:
这里写图片描述
project2视角下的SPC l b:
这里写图片描述

总结

spacemacs里习惯打开多个工程项目的上百个buffer,如果使用buffer标签页类似的东西,界面显示会很难看。

spacemacs里有个菜单选项叫Perspectives,翻译过来就是视角。Perspectives和layout的关系,我还没弄清楚。
个人理解,
1. layout,用来解决“重启spacemacs,可以使用SPC l L快速打开之前打开的所有buffer和窗口布局”;
2. Perspectives,就是不同视角,去浏览buffer和使用窗口布局。
3. 一个layout可以定义N个Perspectives。
4. layout可以保存为文本,方便下次重启恢复。

现在,我只创建一个layout,在这个layout下创建了N个Perspectives,每个Perspectives有N个buffer,可以使用SPC l b去查阅。
好处是:
1. buffer分类很清晰;
2. 每次重启spacemacs可以快速回归上一次的编辑状态。
3. 如果项目过期,我会新建一个layout。

网上,也找不到类似太多的介绍,不过我自己很喜欢这样的操作方式。如果有人熟悉Perspectives和layout的关系,请一定告诉我。谢谢

网上的一篇文章

我是怎样使用Emacs的
https://github.com/lujun9972/emacs-document/blob/master/emacs-common/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8Emacs%E7%9A%84.org

参考文档

http://spacemacs.org/doc/DOCUMENTATION.html#layouts-and-workspaces

0 0
原创粉丝点击