能够使用至少一种文本模式编辑器非常重要。了解如何在您的系统上使用编辑器是迈向独立的第一步。
在下一章中,我们将需要掌握一个编辑器,因为我们需要它来编辑影响我们环境的文件。作为高级用户,您可能想要开始编写脚本、书籍、开发网站或新程序。掌握编辑器将极大地提高您的生产力以及您的能力。
我们的重点是文本编辑器,它也可以在没有图形环境和终端窗口的系统上使用。掌握文本编辑器的另一个优点是在远程机器上使用它。由于您不需要通过网络传输整个图形环境,因此使用文本编辑器可以极大地提高网络速度。
与往常一样,有多种方法可以处理这个问题。让我们看看有哪些常用的编辑器
Emacs 是可扩展、可自定义、自文档化、实时显示的编辑器,在许多 UNIX 和其他系统上广为人知。正在编辑的文本在屏幕上可见,并在您键入命令时自动更新。它是一个实时编辑器,因为显示器更新非常频繁,通常在您键入每个字符或每对字符后更新。这最大限度地减少了您在编辑时必须记在脑海中的信息量。Emacs 被称为高级编辑器,因为它提供的功能超越了简单的插入和删除:控制子进程;程序的自动缩进;一次查看两个或多个文件;编辑格式化文本;以及处理字符、单词、行、句子、段落和页,以及几种不同编程语言的表达式和注释。
自文档化意味着您可以随时键入特殊字符 Ctrl+H,以查找您的选项。您也可以使用它来查找任何命令的作用,或查找与某个主题相关的所有命令。可自定义意味着您可以在细微方面更改 Emacs 命令的定义。例如,如果您使用的编程语言中注释以 "<**" 开头,以 "**>" 结尾,您可以告诉 Emacs 注释操作命令使用这些字符串。另一种自定义是重新排列命令集。例如,如果您喜欢键盘上菱形图案的按键上的四个基本光标移动命令(上、下、左和右),您可以以这种方式重新绑定按键。
可扩展意味着您可以超越简单的自定义,编写全新的命令,即用 Emacs 自己的 Lisp 解释器运行的 Lisp 语言程序。Emacs 是一个在线可扩展系统,这意味着它被划分为许多相互调用的函数,其中任何一个都可以在编辑会话中间重新定义。几乎 Emacs 的任何部分都可以被替换,而无需制作 Emacs 所有内容的单独副本。Emacs 的大多数编辑命令已经用 Lisp 编写;少数例外情况本来可以用 Lisp 编写,但为了效率而用 C 编写。虽然只有程序员才能编写扩展,但之后任何人都可以使用它。
当在 X Window 系统下运行时(以 xemacs 启动),Emacs 提供自己的菜单和鼠标按钮的便捷绑定。但是 Emacs 可以在纯文本终端上提供窗口系统的许多好处。例如,您可以同时查看或编辑多个文件,在文件之间移动文本,并在运行 shell 命令时编辑文件。
Vim 代表 "Vi IMproved"。它曾经是 "Vi IMitation",但是改进太多了,因此名称更改是合适的。Vim 是一个文本编辑器,它几乎包含了 UNIX 程序 vi 中的所有命令以及许多新命令。
vi 编辑器中的命令仅使用键盘输入,这样做的好处是您可以将手指放在键盘上,眼睛看着屏幕,而不是反复将手臂移到鼠标上。对于那些想要它的人来说,可以激活鼠标支持和带有滚动条和菜单的 GUI 版本。
在本书中,我们将始终使用 vi 或 vim 来编辑文件,当然您可以自由选择您喜欢的编辑器。但是,我们建议至少掌握 vi 的基础知识,因为它是几乎所有 UNIX 系统上的标准文本编辑器,而 emacs 可以是可选软件包。不同的计算机和终端之间可能存在细微差别,但重点是,如果您可以使用 vi,您就可以在任何 UNIX 系统上生存。
除了 vim 命令外,vIm 软件包也可能提供 gvim,即 Gnome 版本的 vim。初学者可能会发现它更容易使用,因为当您忘记或不知道如何使用标准 vim 命令执行特定编辑任务时,菜单会提供帮助。