emcas的分窗口显示内容是很好的特性。
特别是咱们编写代码,常常需要一个窗口写程序,另一个窗口显示帮助系统或者其他内容。
在emacs下关于显示界面有三个概念要强调一下:
1. frame : 就是一个编写界面,相当于一个编辑环境,我们可以认为它是最上层的交互接口。
可以使用下面的按键组合看一看
C-x 5 2 --> 尝试新起一个frame(相当于重启一个编辑环境)
C-x 5 o --> 回到原来的frame中
C-x 5 1 --> 只保留当前的frame, 刚刚新建的那个不要了
比如下面两个就是多个frame
2. window : 就是你当前看到的几个窗口
比如下面的就是有上下两个窗口
你可以输入下面一下命名来自由显示若干窗口,可以是分为左右显示,也可以分为上下显示;
C-x 2 --> 让当前窗口按照上下分为两个窗口
C-x 3 --> 让当前窗口按照左右分为两个窗口
C-x 1 --> 值保留当前窗口
当你显示两个窗口的时候,想对其他窗口进行操作,值需要输入前缀命令 C-x 4
比如在本窗口打开文件命令是 C-x C-f
如需在另一个窗口打开文件则输入命令是 C-x 4 f
3. buffer : buffer是编辑和使用的核心。可以把它认为是缓冲区。摘抄一段网上的解释: 缓冲区. Emacs并不直接对文件进行操作, 它是把文件加载进buffer, 用户直接操作buffer, 只有当用户确定把buffer中所做的修改写人文件时, Emacs才把buffer中的内容写入文件. buffer实际上就是一个内存缓冲区, 这和一般编辑器中都一样, 应该很好理解.
这里要解决的就是对于两个窗口(2. window)显示的时候,我自己是常常需要对调上下或左右两窗口。
下面这个函数能实现这一的调换:
(defun switch-window ()
(interactive)
(setq temp1 (current-buffer))
(other-window 1)
(setq temp2 (current-buffer))
(switch-to-buffer temp1)
(other-window 1)
(switch-to-buffer temp2))
这个函数不是很好,用两个临时变量是为了不弄混了,随着学习深入再继续修改吧!