




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Emacs的缓冲区(Buffers)、窗口(Windows)和框架(Frames)Emacs的缓冲区(Buffers)、窗口(Windows)和框架(Frames)分类: emacs 2011-04-02 15:28 101人阅读 评论(0) 收藏 举报目录(?)+1 窗口与框架我们所看到的Emacs“窗口”并非Emacs的窗口,而是Emacs的图形窗口框架(GUI windows frames)。理解这个概念是必须的,因为在未有图形化窗口之前,Emacs已经可以在“终端”运行了,用Windows的术语来说,就是“控制台程 序。看看下面的图,就明白了。1.1 缓冲区,独立于窗口与框架之外本质上,窗口和框架只是显示缓冲区内容的工具。缓冲区内可以包含文件内容,可以是Emacs内部自定义的,譬如*Messages*,*scratch*,或*help*等,也可以是用户自定制而其中内容未写入文件的。许多图形界面的应用程序是将图形窗口(Emacs中称之为Frames)与一些文件紧密联系在一起的,而Emacs的将缓冲区与图形窗口分离的方式是强大又灵活的。实际上,我们在大部分时间里宁愿使用一个Emacs Frame,而使用C-x b来切换缓冲区 ,这要比在多个Frame中采用鼠标切换或采用切分窗口等方式更容易,尽管它们在一些情况下存有优点。1.2 更深入地了解缓冲区你知道该怎样获知Emacs中开了几个缓冲区及它们的详细信息吗?有三种方法可以实现:C-x C-b,显示缓冲区列表 ;缓冲区菜单,列举了打开的缓冲区以及导向它们的快捷命令;在Emacs的窗口中,摁下Ctrl键,点击鼠标左键 ,可以弹出缓冲区列表。Emacs自行定义了一些缓冲区,它们的名字,通常是像*buffername*,*help*,*scratch*这样的格式,并且缓冲区列表本身就是Emacs自定义的缓冲区,如下图:当你启动Emacs的时候,会产生*Messages*和*scratch*两个缓冲区。*Messages*是用来显示从Emacs启动开始的所有命令信 息的缓冲区,*scratch*是草稿缓冲区,你可以在其中乱写东西,但不会被保存,除非用户使用C-x C-W 命令。在 用户使用 Emacs编辑文件时,所读取的文件会被复制到同名的缓冲区内。如果用户需要帮助,那么也可以打开*help*缓冲区。可打开的缓冲区的数量是没有限制 的。大部分时间,仅有一两个缓冲区被显示,还有好多即使你没看到,但它们也是存在的。你可以把缓冲区想象为一堆页面,其中仅有一页是当前页,你可以切换到 令一页,或者创建新页。每个缓冲区都关联一个主模式,它决定了在该缓冲区内,Emacs的行为。譬如,text模式,被设计为书写文档的;Lisp模式, 是用于书写Lisp程序的。用户可以在一个Emacs窗口或框架中显示多个缓冲区,要紧是记住你创建的所有缓冲区。2 在多缓冲区模式下工作如 果你想创建一个包含文件内容的缓冲区,可以C-x C-f,Emacs会自动创建一个缓冲区并将你带入其中。如果你已经在一个缓冲区打开了这份文件的副本, 那么C-x C-f会把你带入那个已存在的缓冲区中,在此请仔细体会一下,Emacs给你带来的好处吧!而如果你要打开的文件不存在,Emacs会为你创建 一个新文件的缓冲区,并将你带入其中。请记住:C-x C-f是打开一个文件,该命令后总是跟随这目录/文件名的,如果要打开的文件不存在,就创建新文件。2.1 切换缓冲区你有意识到模式行并不显示文件名,而仅仅显示缓冲区名吗?其他一些版本的Emacs可以两个名字都显示,但GNUEmacs只显示缓冲区名,这是因为通常情况下,文件名和缓冲区名是一致的,除非你去修改它们。要在不同缓冲区之间移动,就C-x b吧。Emacs会给你提供一个默认的最近隐掉的缓冲区名,回车就可以进入。或者输入你想进入的缓冲区名字的前几个字,然后摁Tab键,Emacs会自动为你补全缓冲区名,回车进入即可。请记住:C-x,b之后则跟随一个缓冲区的名字。如果相应缓冲区不存在,Emacs会自动创建一个新的空缓冲区,与C-x C-f的不同之处是,新建的缓冲区不与文件关联,在退出Emacs时,Emacs不会提醒你要保存缓冲区。查看已打开的缓冲区,还有以下两种可选方式:C-x C-b,这种方法可用于终端环境中的Emacs;在Emacs窗口中,摁下Ctrl键,点击鼠标左键。该方法只对图形化的Emacs有效。2.2 删除缓冲区为什么要删除缓冲区?你的Emacs中开的缓冲区太多了,想去掉几个;对已有文档的修改具有灾难性,将这个缓冲区干掉就可以了。要删除缓冲区,可键入C-x k ,Emacs 会显示当前被显示的缓冲区名,也可键入想删除的缓冲区的名字,然后回车。如果已与文件建立关联的缓冲区,内容有了 改动,Emacs会提示你保存一下。其他情况,则缓冲区就永远的消失了。而键入M-xkill-some-buffers可成批删除缓冲区,系统会一个一 个列举已存在的缓冲区,问你是不是把它kill掉,你只需要回答yesorno就可以了。当所有的缓冲区都被kill掉之后,Emacs不会屏幕 空着的,它会创建一个新的*scratch*缓冲区。3 在多个窗口中工作窗口是屏幕上显示Emacs缓冲区内容 的区域。可以一次打开多个窗口,每个窗口可以显示不同的缓冲区,也可以显示相同缓冲区的不同部分,这些窗口之间不存在覆盖现象,只是对屏幕进行分割。一旦 创建新窗口,旧窗口就自动缩小。就好像屏幕是馅饼,可以把它切成许多块,但这些窗口的排列只有两种方式:水平的或竖直的。3.1 创建水平排列的窗口最常用的命令是C-x 2 , 可以将当前窗口水平切分为两个窗口,可以不断重复这个命令,切分出更多的窗口。你也可以让Emacs每次启动时打开多个窗口。如果你需要在水平切分的两个 窗口中编辑两份文档,则可以在启动Emacs时,指定这两个文件的名字。譬如,我想编辑1.tex和2.html两份不同的文档,启动Emacs时,可以 直接emacs 1.tex2.html即可。如果编辑超过两份文档,那么Emacs会在一个窗口中显示所指定的文档中最后的那份,然后会在另一个窗口中给出缓冲区列表。可以在一个窗口中,使用C-M-v 去滚动另一个窗口的屏幕。3.2 在多个窗口间迁移要将光标从一个窗口切换到另一个窗口,可以C-x o (o表示other)。在图形化的Emacs中,可以用采用鼠标来切换窗口。3.3 将窗口咔嚓掉要删除当前所在的窗口,可以C-x 0 。而要删除所有的窗口,只保留当前窗口,可以C-x 1 。另外也可以像删除缓冲区那样,交互删除一批窗口,M-xdelete-windows-on。但删除一个窗口仅仅意味着它不再显示,而不会删除缓冲区内的任何信息,我们依然可以使用C-x b来切换到自己需要的缓冲区。4 在多个框架中工作现在,我们都已经知道Emacs将图形化窗口称为“Frames”的。这一节中,将讨论如何创建框架,框架之间的操纵,以及框架的删除。4.1 创建新框架C-x 52 ,打开一个新框架,Emacs会让这个新框架包含当前的缓冲区,并把它置于当前框架之上。如果你建立的新框架完全覆盖了当前框架,那么可以定制新框架的尺寸来把它们分开。比较方便的解决方法,就是把以下代码添加到你的.emacs文件中:(setq initial-frame-alist (top .10) (left . 30) (width . 90) (height . 50) (setq default-frame-alist (width .80) (height . 45) 以 上代码设定了Emacs框架的宽度和高度。第一个框架的尺寸是在initial-frame-alist中设定的,90个字符宽,50行高,框架左上角坐 标为(10,30)。后续框架尺寸,由default-frame-alist定义,80个字符宽,45行高。你也可以自己根据你的显示器自行设置其他参 数。如果你想为已经打开的一个名为xxx的文件创建一个新框架,那么可以C-x 5 fxxx。如果你想为已经打开的一个名为xxx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论