Alex He

...永远保持希望与激情...约会未来更强大的自己...

 

emacs调换window函数

emcas的分窗口显示内容是很好的特性。

特别是咱们编写代码,常常需要一个窗口写程序,另一个窗口显示帮助系统或者其他内容。

在emacs下关于显示界面有三个概念要强调一下:

1. frame : 就是一个编写界面,相当于一个编辑环境,我们可以认为它是最上层的交互接口。

可以使用下面的按键组合看一看

C-x 5 2 --> 尝试新起一个frame(相当于重启一个编辑环境)

C-x 5 o --> 回到原来的frame中

C-x 5 1 --> 只保留当前的frame, 刚刚新建的那个不要了

比如下面两个就是多个frame

 image

2. window : 就是你当前看到的几个窗口

比如下面的就是有上下两个窗口

 image

你可以输入下面一下命名来自由显示若干窗口,可以是分为左右显示,也可以分为上下显示;

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实际上就是一个内存缓冲区, 这和一般编辑器中都一样, 应该很好理解.<http://emacser.com/emacs-beginner-must-know.htm>

这里要解决的就是对于两个窗口(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))

这个函数不是很好,用两个临时变量是为了不弄混了,随着学习深入再继续修改吧!

posted on 2012-06-15 16:01  Alex木头  阅读(541)  评论(0编辑  收藏  举报

导航