`
holoblog
  • 浏览: 1224104 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:18882
文章分类
社区版块
存档分类
最新评论

译 GNU Emacs Manual - [1] The Organization of the Screen 界面布局

 
阅读更多

译者: 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 . 这使选择操作菜单选项必须通过键盘.. 你可以通过上下箭头来移动不同的选项, 通过回车确定选择.

每个菜单选项都有一个被分配的 字母 或者一个数组 用来快速调用它们,通常是它们名字的首字母. 字母 或者 数字被 => 分开 .你可以通过 输入 命令相应的字母 或 数字 进行调用.这就是常说的快捷键。

一些菜单的命令都有普通的键绑定; 像这样的键绑定的 一般显示在括号中.



- 本章完
by Crazybaby

本Manual所有翻译: http://blog.csdn.net/crazyjixiang/article/category/871530 (会慢慢翻译全部,并且整理完整 以pdf 形式share给大家)


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics