译 GNU Emacs Manual - [3] Entering and Exiting Emacs 进入和退出Emacs

译者: Crazybaby

进入和退出Emacs

 
   通常打开Emacs的方式是从shell中执行emacs打开的.打开的一瞬间 , Emacs会先清屏,然后显示一些初始化好的帮助信息 和 版权注意事项. 一些操作系统当Emacs启动时会先放弃你的提前键入的命令;它们给了Emacs没有办法阻止的权限.在这些操作系统中,在你开始输入字符之前需要先等待Emacs清空屏幕.
  
    在X Window系统的Shell下, 通过运行 emacs & 命令让Emacs在后台运行.这种方式,Emacs不能阻碍Shell 窗口,当Emacs正在运行的时候,你可以使用它运行其它Shell 命令 .你也可以,当焦点在Emacs上的时候 直接在Emacs上敲击命令
 
     当Emacs启动时,它会创建一个名为 '*scratch*' 的缓冲区. ' *scratch"' 缓冲区使用了Lisp Interaction(交互) 模式; 你可以使用它进行一些Lisp表达式操作并且运行它们. 当然你也可以忽略这些特性而仅记些笔记. 你可以通过设定一些变量 initial-major-mode在你初始化的文件中 给这个缓冲区指定一个不同的主要模式.详细请看 32.6 节 [Init File 初始化文件] 第 403 页.

    通过使用Emacs的命令行参数是可以进行指定文件首先被访问, 指定lisp脚本被加载, 和一些函数被调用 的. 详细请参见 附录 C [Emacs Invocation], 第 436 页.这些特性的存在主要为了和其它编辑器的兼容.

    很多编辑器被设计成只能编辑一个文件. 当一个文件被编辑完了,你就会退出编辑器 .当下次你想再编辑一个文件时,你必须再次启动这个编辑器 .类似这样的方式进行使用, 使用命令行参数来编辑一个文件是非常方便的.

   然而,在编辑完一个文件后再关闭Emacs,再编辑下一个文件时又重新启动Emacs这是完全没必要的而且是有害的 , Emacs可以在单独的编辑会话中访问超过1个以上的文件,而且这是最正确的使用方式. 退出Emacs 会话会丢失很多上下文, 比如 删除环圈, 寄存器 , 撤销历史 和 标记环圈. 这些特性对操作多文件是非常有用的  甚至可以继续编辑一个文件. 如果你每编辑一个文件就关闭Emacs,你就不能最大化的利用它们了.
 
  使用Emacs推荐的方式是:在你登录后,只启动一次Emacs,然后所有的编辑操作都在同一个Emacs的会话中, 任何时候你编辑一个文件,你直接使用已经运行的Emacs就可以了,最后会有许多文件都在准备编辑. 通常你不需要关闭Emacs直到你将要退出系统. 了解更多访问超过单独一个文件的信息 请读 第 15 章 [Files 文件] 第 111 页.
  
  当Emacs运行的时候从一个程序中编辑一个文件,你可以使用emacsclient帮助程序在已经运行的Emacs中打开. 详细你读 第 31.3 节 [ Emacs Server] . 第 360 页.

3.1 Exiting Emacs 退出Emacs

  有两条退出Emacs的命令 和 三种风格的退出: 图标化Emacs, 休眠Emacs 和 退出Emacs.

  图标化意思着当你在使用图形界面显示时,用一个盒子或一个图标来代替Emacs的frame显示在屏幕上,这是通常使用方式---如果你根本很讨厌 "退出" 的话. (这样仅仅切换到其它应用程序通常是种有效的方式)

  休眠意思是临时暂停Emacs, 然后返回所有控制Emacs的父进程中(通常来是指Shell) ,允许你过会继续使用Emacs来编辑.这是在纯文本终端下退出Emacs常用的方式.

  退出Emacs,这个很好理解就是正常关闭了,深入的说就是消灭掉Emacs进程. 再次使用时需要重新打开,但是你会得到一个全新的Emacs.这样就不能恢复上次编辑过的 会话了.
 
  C-z         休眠Emacs(suspend-emacs) 或者 图标化frame(iconify-or-deiconify-frame)

  C-x C-c  退出Emacs(save-buffers-kill-emacs)
 
  在图形界面下,C-z会运行命令 iconify-or-deiconify-frame, 这样会临时的图标化('最小化') Emacs frame (详细请看 第 18 章 [Frames], 第 159 页). 你可以通过窗口管理器来选择其它程序.(当然你可以不需要首先图标化来运行其它程序,但是Emacs更小化会更方便的使用其它程序.)

  在纯终端下, C-z 会运行 suspend-emacs 命令, 休眠Emacs会让你返回到Shell界面直到你重新使用Emacs. 在大多数Shell中,你可以通过Shel运行%emacsl重新继续使用Emacs.在一些不支持休眠的程序中,C-z 会启用一个子Shell 来直接和终端进行通信,然后Emacs会一直等待直到你退出子Shell(这种方式类似于使用C-d 或者 exit命令操作.不过这些操作依靠你使用什么样的Shell).
 
  如果你在一个不支持休眠的shell下运行Emacs,休眠将会失败.类似这样的,你可以设置 cannot-suspend 这个变量 为 non-nil 值 强制C-z 开启一个子Shell .

  退出和关闭Emacs,使用C-x C-c ( save-buffers-kill-emacs) .这个命令会首先保存任何被修改过的buffers. 如果你在退出之前不保存全部,它也会依次询问 是否保存.如果有子进程仍然运行 ,C-x C-c 也会对它们进行确定保存操作(yes/no),因为退出Emacs,子进程也会相应退出.
 
   如果 confirm-kill-emacs 变量是 non-nil , C-x C-c 会认为这个变量是一个断言函数,并且调用该函数.如果结果为 non-nil ,这个会话会被关闭,否则Emacs继续运行着.一个合适的方式是 confirm-kill-emacs 这个函数的值是 yes-or-no-p . confirm-kill-emacs的默认值是 nil. 

  关闭Emacs后还想恢复Emacs的会话是不行的. 然后Emacs可以做到当你关闭Emacs后能恢复一定的会话信息, 比如哪些文件你编辑过,下一次你启动Emacs后你可以尝试访问相同的文件. 关于这个更多的信息 请看 31.2节 [Saving Emacs Sessions 保存Emacsa会话], 第 370 页.

  操作系统通常会去监听特殊的操作符,比如kill 或 suspend(休眠) 你正在运行的程序. 当你使用Emacs的时候这种操作系统的特性会禁止掉.也就是说Emacs的 C-z 和 C-x C-c  会代替掉一些操作系统的C-z 和 C-c . 你可以自定义这些键运行你想要的命令 (详见 32.4.1节 [Keymaps 键映射] 第 393页).

 
 
    - 本章 完
by Crazybaby

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


原文链接: http://blog.csdn.net/crazyjixiang/article/details/6725699

你可能感兴趣的:(译 GNU Emacs Manual - [3] Entering and Exiting Emacs 进入和退出Emacs)