译者: Crazybaby
界面布局
一个纯文本的终端下, 你可以想象的出来Emacs的显示区会占据了整个屏幕.在图形界面下,比如在GNU/Linux下使用X Window的系统,Emacs将创建自己的窗口给自己使用,我们使用的术语 框(frame) 意思是 纯文本画面 或者 是Emacs使用了完整的系统级窗口. 正常情况下 Emacs只使用一个窗口,如果你愿意你可以创建多个窗口. 请参见 Charpter 18 [框] ,159页.
当你启动Emacs后,显示在中间区域的窗口(frame),除了上,下边框,在中间的文本区都是你要编辑的.这个区域称为窗口(window),在窗口上面和其它软件一样有个菜单条,你可以对这进行一系列的菜单操作.在菜单下面有个工具条上面有一行按钮,如果你点击它们,将会执行不同的编辑命令,再下面就是窗口(window 编辑区域)了.Emacs通常会有一个滚动条,在窗口下面,有一个特殊的回显区 或者 称作迷你缓冲窗口(minibuffer),这个区域主要用来提示和一些Emacs要求的信息.关于这个特殊区域的更多信息,请继续看下面的几节.
译者:关于frame和window 我这里做下解释,(在有X window或MS的情况下) frame可以理解为顶层窗口,你可以先在Emacs执行 C-x 5 2 来创建一个frame, C-x 5用于Frame的相关操作. Window的意思也很清楚 可以理解为它是Frame中的子集,你可以使用C-x
2 , C-x 3来创建Window 然后使用C-x 0来关闭window. 这些后面 手册中都会说到. 经过这么解释 ,你应该清楚了,若不清楚,请留言. 或者 略过, 没事, 继续往下看.以后会懂的..
译者:Minibuffer是Emacs界面下最下面的那一个小横条,通过输入各种命令以及参数的地方,当你按下M-x 手工调用某个命令时,Emacs就是在MiniBuffer中接受你的命令名的。当然还可以显示各种信息。
译者:Minibuffer,frame, window 等Emacs专用术语 以后只解释一遍,然后就直接用英文,请理解。
你可以把窗口横向或者纵向分为多个文本窗口,任何中一个都可以单独显示某一个文件和文本(请参见 第 17 章 [窗口], 154页) 在这本手册中, 单词 'Window'(窗口) 当在没有切分多个子窗口的情况下 它表示 一个创建的大窗口整体, 反之 是切分的小窗口.
在任何时候,只有几个激活窗口,在图形界面下,被激活的窗口正常情况下将显示突出的指针(通常是实心的和闪烁的) 而其它窗口将会显示一个微弱的指针(像一个空的盒子), 纯文本终端只有一个指针,所以它总是会显示在激活的窗口中.
译者:可能读者不太清楚,我来上个图 大家自然明白:
大多数Emacs命令默认就作用于激活的窗口文本中, 未被选中的窗口大部分是作为参考的. 然而, 鼠标命令通常操作在窗口点击进去和文本的选中,如果你是在图形界面下使用多窗口(frame)显示的, 那么,给一个特别的窗口(frame)选择一个窗口(window)作为一个输入区域.
每个窗口最后一个行是模式行, 它主要用来描述这个窗口即将做什么.它可能会显是不同的颜色或者是个 3D 图形,当然3D 需要你的终端支持它们,一般Emacs启动后内容都是以 '--:-- *scratch*' 显示的 . , 当缓冲区被改变但还未保存的时候,模式行会显示这个缓冲区即将显示什么在窗口(window)上 和 在使用什么 主模式 和 二级模式 .
1.1 Point(光标位置)
译者:
下面谈及的指针就是在Emacs上游走的光标 .
在Emacs中,被激活的光标显示了编辑的位置和编辑命令的效果在哪产生. 这个位置成为 点 ,许多Emacs命令从这个点移动到整个文本,所以你可以在不同地方进行编辑.你也可以在点的位置进行鼠标点击操作(通常是左点击) .
当光标显示在一个字符上时 ,你应该想到点是在两个字符之间,它坐落在当前光标下的字符前面. 比如 如果你的文本是这样的 ' frob' ,光标在b的下面, 那么 点 将在 'o' 和 'b'之间,如果你现在插入一个字符 '!' 在这个位置, 显示的将会是 'fro!b' ,光标又坐落在'!' 和 'b'之间.因此, 光标保持在 '!', 像之前一样.
译者:-------------------------> 插入 ! 后 ---------------------->
有时,一些人称 "点" 时,也会谈及指针 或者 谈及移动指针运动的命令 .
如果你正在Emacs中编辑多个文件,每个文件在一个单独的缓冲区中,每个缓冲区都会有术语自己的点(指针)位置. 当Emacs显示多窗口时,每个Window的buffer都有自己的单独的 点位置 .
纯文本终端在激活的窗口中只有一个指针. 其它窗口不会显示指针,即使它们都有自己的点位置.当Emacs在纯文本终端更新屏幕时,它不得不把指针临时的放在输出的位置.
在图形界面中,Emacs会在每个窗口都会显示一个指针; 被激活的窗口是实心而且闪烁的, 其它的窗口的指针就看起来会有点空洞.因此,在所有终端中,大多数突出的指针一般显示在你激活的窗口中.
请参见 11.15节 [指针显示] ,77页, 可以自定义一些变量控制指针或者很多指针的显示.
point ('点') 这个术语来自字符 ' . ' , 这个是TECO(在最初的Emacs中被使用)访问值用的,现在成为 '点'.
译者:TECO 是 行编辑器的意思(Text Editor and Corrector) , 在人工智能实验室的ITS上运行的OS PDP-6和PDP-10的默认编辑器就是个行编辑器,也就是类似Emacs
1.2 The Echo Area (回显)
在窗口(frame)底部(模式行下面)是回显区域,这里主要用来为不同的操作目的显示一些文本.
回显意味着显示你敲击的字符, 在终端下命令行,正常情况下操作系统会回显你输入的字符串.Emacs处理回显是不同的.
单个字符命令是不会回显在Emacs中的,多个字符命令回显只当你敲击命令过程中并且暂停了才有.只要你在输入命令的中途中暂停超过1 s ,Emacs会回显所有此命令的字符.这是为了提示你下面的命令. 如图所示:
译者:
一旦回显启动了,提示命令会随着你的敲打而及时的回显给你.这个操作设计给有把握的用户进行快速响应.同时,给犹豫的用户最大化的进行反应.当然你可以设置这个值以改变这个操作. (请见 11.17节 [自定义显示] 78页 )
如果一个命令不能正常进行工作,这也许会产生一个错误信息在回显区.错误信息是伴随beep(我想这边用英文更好)声音 或者 可能是闪屏. 这个错误也会放弃你之前任何输入.
一些命令会显示有用的消息在回显区.这种消息看起来非常像错误信息, 但是它们没有伴随着beep声 和 不会放弃任何输入. 有时当文本被编辑时不时那么明显时,这个信息会告诉你 这个命令将会做什么 .有时 一个专用命令会给你一个特殊的信息提示-----比如, C-x = (按住Ctrl 然后不要松,继续按x ,然后放开Ctrl和x 继续按 =) 会显示一个描述当前光标字符的位置和当前是第几列.若命令花费时间较长,在运行时回显区将会显示 "..." .当命令完成时会在最后添加一个'done' (完成)
.它们也可以显示完成的百分比.
译者:此图是 C-x =的操作.
回显区的信息被保存于编辑器中的一个缓冲区(buffer) 名字叫 '*Message*' (我们还不能解释缓冲,如果你想了解更多信息,请参见第16章 [缓冲区] 145页 ) ,如果你不小心错误一个信息,你可以切换到''*Message"'缓冲区 就可以看到它了.
'*Message*' 的大小是message-log-max变量限制的.当数目超过这个变量时,往里面继续追加信息,将会删除开头的信息 . 请参见 32.3节 [变量] 387页 .怎么设置类似message-log-max这样的变量.
译者:
我这里显示的是100 lines
1.3 The Mode Line (模式栏)
每个文本窗口最后一行是模式行,它描述了窗口(window)即将做什么.模式行开始和结束是破折号.当GNU Emacs只有一个窗口时,模式行会显示在回显区的正上方;如果可能的话,被激活的窗口中模式行是高亮的.你可以从 11.13小节[可选择的模式行] 75页 获取到更多有关模式行的信息.
正常情况下, 模式行像这样显示的:
这个模式行提供了关于窗口(window)和缓冲区有关的信息,比如 缓冲区的名字, 还有 主要模式和二级模式正在使用.
如果缓冲区被编辑了(或者缓冲区被修改了), ch 会显示成两个星号'**', 如果缓冲区还没有被编辑过,ch会显示两个 '--'. 对于只读缓冲区,如果缓冲区被修改了,会变成'%*', 否则是'%%' .
fr 会显示当前frame的名字 (请参见 18 章 [Frames] 第159页 ),它只会显示在纯文本终端中. 初始化的frame名字是'F1' .
buf 是window的名字, 通常情况下是你正在编辑的文件的名字. 请参见 第16章[Buffers] 第145 页.
被激活的window中显示的buffer是当前编辑的buffer, 当一个命令作用于这个 缓冲区时, 意味着这个缓冲区发生了一些事情.
pos 告诉你 是否有其它文本窗口显示在窗口顶部或者底部,如果你的缓冲区很小 而且 所有文本内容都显示在window中, pos为'All' . 否则 当你从头往下浏览缓冲区时 会显示 Top , 从底部向上面浏览时,会显示 'Bot' , 或者'nn%' 如图:
这里的nn是当前位置离window顶部的百分比.
当显示行模式打开时, 你可以看见行号, 当列模式打开时 你也可以看见当前列数. 这些通常情况下是关闭的,因为这会影响Emacs的响应速度. 请参见 11.13小节[选择性的模式行] ,第75页 .
major 是当前缓冲区的主要模式的名字, 一个缓冲区可以每次只在一个主要模式中. 主要模式一般包含基本模式(至少需要的),比如 文本模式, Lisp模式, C 模式, Texinfo 模式和一些其它的. 想了解各个模式的不同处 和 怎么使用它们 请参见 第20章 [主要模式] 第192页. 获取更多信息.
一些主要模式后的名称会显示一些更多的信息,例如,Rmail缓冲区显示了当前信息的数目和所有信息的数目,Compilation缓冲区和Shell缓冲区会显示子进程的状态.
minor里面列出了当前buffer打开的二级模式.比如 , 'Fill' 意味着 自动折行模式启用了. 'Abbrev'' 意味着 Word Abbrev 模式启用了. 'Ovwrt'意味着 Overwrite模式打开了. 详细请参见 32.1节 [Minor Modes], 377页.
译者:Abbrev模式可以让你对较长的字符串或者短语进行速记,比方说 当你在缓冲区中输入一个很长的字符串(Congratulations) 发现很累,现在给它定义一个缩写 cons 就可以代替Congratulations了.
Ovwrt模式是改写模式,打开这个模式后 你就可以进行对当前光标下的文本到后面的文本进行覆盖操作.请看操作:
'Narrow' 意思是只显示当前需要编辑的,也就是隐藏文本(这个不是真正的二级模式,但是很类似) 请参见31.9节 [Narrowing], 第368页 'Def' 意思是一个键盘宏被定义了,通常使用F3进行定义,请参见第14章 [键盘宏] 第103页.
另外,如果Emacs进入递归编辑层,一般使用方括号外面套了圆括号来指名模式.如果有1层递归就会显示两个方括号.请参见 31.13节 [递归编辑] 第371页
cs状态显示了你当前正在编辑的文件正在使用什么编码.
只有在纯文本终端下,cs会有两个额外的字符 ,分别描述了 当前键盘的输入 和 终端的输出.
如果你正在使用输入法,字符串'i>'会被添加到cs的前面, i标识输入法 (一些输入法 会显示 '+' 或者 '@' ).请参见 19.4节 [Input Method] 第176页.
当多字符集没有被启用时, cs根本就不会显示, 请参见 19.2 节 [Enabling Multibyte] 第 174页
请参见 11.13章 [Optional Mode Line] 第75页, 可以得到一些关于mode line更方便的信息,比如buffer的大小,当前点位的第几列,当邮件到来时.
鼠标对模式行也起作用,当你移动鼠标经过这些mode时,Emacs会显示相应mode的帮助信息, 请参见 18.4节[Mode Line Mouse] 第 164 页
译者: 如
1.4 The Menu Bar (菜单栏)
每个Emacs窗口(frame)顶部都会有一个菜单条,你可以进行一些常用操作. 这里就不列在这了,你可以非常简单的看到它们怎么使用的.
在图形界面下,你可以使用鼠标去选择菜单条上的命令. 菜单选项的右边箭头提醒你 还有子菜单; '...'提醒你这个命令需要读入参数.
你也可以通过按F10来调用菜单选项(当menu-bar被打开时) ,你可以使用方向键操纵菜单, 确定使用一个项目可以通过回车键 ,取消一个项目可以通过 Esc键 .
如果你要查看 菜单的所有命令名称和文档,你可以按 C-h k ,然后选择你想了解的命令 .(请参见 7.1节 [Key Help], 第 38页) /
在纯终端下,由于没有鼠标,你可以使用 'M-' 键来调用 或者 F10 . 这使选择操作菜单选项必须通过键盘.. 你可以通过上下箭头来移动不同的选项, 通过回车确定选择.
每个菜单选项都有一个被分配的 字母 或者一个数组 用来快速调用它们,通常是它们名字的首字母. 字母 或者 数字被 => 分开 .你可以通过 输入 命令相应的字母 或 数字 进行调用.这就是常说的快捷键。
一些菜单的命令都有普通的键绑定; 像这样的键绑定的 一般显示在括号中.
- 本章完
分享到:
相关推荐
这是GNU Emacs Manual的mobi版,Kindle用户大爱,不过Manual就是Manual不是什么实例教程。
This is the Seventeenth edition of the GNU Emacs Manual, updated for Emacs version 24.3. Copyright c 1985–1987, 1993–2013 Free Software Foundation, Inc. Permission is granted to copy, distribute and...
gnu emacs manual index
The GNU C Library Reference Manual
GNU Emacs Lisp Reference Manual 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开
Linux 环境下的程序员如果不会使用 GNU make 来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix 程序员。在 Linux(unix)环境下使用 GNU 的 make 工具能够比较容易的构建一个属于...
下载**clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04** LLVM下载地址:http://releases.llvm.org/download.html#8.0.0 放置到`openarkcompiler/tools`目录,打开`openarkcompiler/build/config/BUILDCONFIG.gn`...
avr8-gnu-toolchain-installer avr 编译安装环境
Perl,Python,Lisp等等 玩游戏 计算器 记日记 煮咖啡 管理日程,Task,ToDo,约会等 个人信息管理 目录管理 文件比较 阅读info和man文档 浏览网站 为各种程序(TeX等)提供统一的操作界面 …… 此外Emacs还有如下...
gnu-mcu-eclipse-windows-build-tools-2.12-20190422-1053-win32 windows tools.
GNU Emacs Lisp Reference Manual For Emacs Version 22.1 Revision 2.9, April 2007
一本介绍GNU LISP的很好的资料,英文版的,需要有相当的英语功力!
mips-linux-gnu-ingenic-gcc7.2.0-glibc2.29-fp64-r5.1.1.tar.bz2
emacs 教程 Writing GNU Emacs Extensions pdf
The GNU MCU Eclipse Build Tools v2.11 package includes the version 4.2.1 of GNU make (built from MSYS2 source files), and version 1.29.0-git of BusyBox, which provides a convenient implementation for ...
clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,官网下载实在是太慢了!!!
Programming in Emacs Lisp: An ...本书是一本GNU Emacs Lisp的编程入门,全书循序渐进地介绍了GNU Emacs Lisp编程的各种基础知识和方面,文笔流畅、讲解透彻,对GNU Emacs用户提高对它的理解和运用帮助极大。
GNU Emacs Pocket Reference