标签: emacs

  • Emacs 入门指南:基本编辑命令:移动光标

    Emacs splash screen

    基本编辑命令

    Emacs 让用户能够快速高效地工作,其方法之一就是提供在文本间移动,和操作文本的高阶命令。这些命令可以应用于字符、单词、行、句子、段落、页面、函数定义、空白处等。我们可以在任何阅读或编辑文本的地方使用它们:源代码、网页、shells、目录列表、电子邮件消息等。

    在缓冲区中移动{光标}

    最基本的缓冲区移动命令按行或列(字符)移动焦点(光标):

    C-f 前移一个字符
    C-n 移动至下一行
    C-b 后移一个字符
    C-p 移动至上一行

    下面是一些在较大区块上移动光标的方法[1]

    C-a 移动至行首
    M-f 前移一个词
    M-a 移动至上一句
    M-v 移动至上一屏
    M-< 移动至缓冲区头部
    C-e 移动至行末
    M-b 后移一个词
    M-e 移动至下一句
    C-v 移动至下一屏
    M-> 移动至缓冲区尾部

    当你习惯了这些按键,使用起来会比其它应用程序中的等价按键( Home、End、Ctrl+Left 等),更为得心应手,因为双手不必离开基本输入位置。而在缓冲区中,按键{操作}远比使用鼠标来回移动更为迅速。

    Emacs& nbsp;提供了额外的命令,以在特定上下文情境下移动光标(例如在编写源代码时,有专用命令移动光标到上一个或下一个函数定义处)。

    因为上述许多命令都是将光标移动到,当前位置的一个相对位置上,所以我们可以反复使用它们(如 C-p C-p C-p 回退三行)。还可以用前缀参数节约时间:C-u 后跟一个数字和一个移动命令,表示将该命令重复执行指定次数。可以使用 M-[digit] 代替 C-u [digit] 。如果使用 C-u 时没有指定数字,默认值为4。当我们不知道需要移动的准确次数时,省略数字可以节省时间。

    C-u 3 C-p 向上移动3行
    C-u 10 C-f 前移10个字符
    M-1 M-0 C-f 前移10个字符
    C-u C-n 向下移动4行
    C-u C-u C-n 向下移动16行
    C-u C-u C-u C-n 向下移动64行

    光标也可以直接跳转到缓冲区的指定行上:

    M-g g 跳转到指定行

    查找文本是在缓冲区中移动的快捷方法。可以将查找看作是另一种形式的移动。我们在查找特定元素时,可以使用渐进式搜索直接跳转到相应位置,而不必逐行或逐页查看。有关搜索的问题后面会详细说明。

    C-s 渐进式正向搜索
    C-r 渐进式反向搜索

    在缓冲区移动光标的另一种方法是使用标记

    未完待续……

  • Emacs 入门指南:文本操作

    文本操作功能

    Emacs 提供了大量操作文本的工具,同时也有方法呈现文本中的各种信息。下面是一个例子:

    M-x dired 在所选目录中启动 Dired 文件管理器模式。然后按下 C-x C-q(或  M-x wdired-change-to-wdired-mode)切换到可编辑Dired 模式:

    Close-up of a directory listing in Editable Dired mode.

    在这种模式下,更改右栏文件名,然后键入 C-x C-s(“保存”)即可实现指定文件的重命名。重命名文件与编辑文本一样容易。批量重命名(例如,重命名形如 icon_* 的文件为 backup_icon_*)与执行查找和替换一样容易(M-x query-replace M-%),我们不需要学习如何使用一个单独的批量重命名工具。

    在 Emacs 中,与我们进行交互的不仅包括文件和目录,还有系统工具、编译器、调试器、个人信息管理器、网页、电子邮件、聊天应用,以及其它各种互联网服务等,而且有一个第三方工具系统为我们提供更多的功能特性。正是由于这种整合性,Emacs 的优势得以体现:我们所学会的任意一项编辑功能(例如查找和替换),都可以在各种不同场景下得到应用。

    未完待续……

  • Emacs 入门指南:说明

    为何使用 Emacs ?

    Emacs 为各种不同类型的任务提供了一个整合环境,使人们工作起来更高效:

    • 基本编辑命令一应俱全(数量那是相当多),足以应付各种任务:写代码、读手册、使用 shell 或撰写电子邮件等。
    • 用于打开、保存、搜索和处理文本的各项工具 Emacs 均有提供。

    这种一致性意味着在 Emacs 中工作,往往会比{为每项任务分别}学习使用一种单独的程序,来得更为便捷,因为每个程序通常定义有各自不同的编辑功能集合,以及{不同的}快捷键设定。

    如果对 Emacs 的工作方式不完全满意,我们可以使用 Emacs Lisp(Elisp)语言来定制 Emacs 、自动执行日常任务或添加新功能。Elisp 很容易上手且非常强大:可以用于变更或扩展几乎所有的 Emacs 功能。通过编写 Elisp 代码{进行扩展},Emacs 无所不能。关于这一论点,其论据是,上一节介绍的所有功能(以及本文此后将论及的更多特性)都是以 Elisp 编写而成。

    Emacs 同样具有可移植性。我们能在 Windows、GNU/Linux、Mac OS,以及许多其它平台上以相同配置运行 Emacs。

    在我们开始之前…

    如果已经装好 Emacs,我们可以按照本文介绍的例子学习使用它。开始使用 Emacs 之前,请务必阅读 Emacs 自带的教程。该教程提供了一种交互式实践过程,来让我们熟悉许多基本操作,包括:

    • 启动和退出 Emacs
    • 基础文本操作和编辑命令
    • 打开和保存文件
    • Emacs 概念:窗格、窗体、文件和缓冲区
    • 通过 M-x 快捷键调用命令

    要运行此教程,只需启动 Emacs 并输入 C-h t,亦即,按下 Ctrl-h 键之后再按 t 键。

    教程中所描述的全部功能特性都可以运行于 GNU Emacs 第23版之上。而某些功能不包括在 Emacs 早期版本中,但是可以单独安装。

    有时我们会说:

    获取更多信息,请查阅 (info "(emacs)Using Region")

    这是指 Emacs 手册中的一页,我们可以通过点击链接阅读其内容。另外,我们还可以通过 Emacs 内置的文档阅读器直接访问这些页面,我们称之为信息。要做到这一点,首先按下 M-:,然后输入 (info "(emacs)Using Region"),最后按下 RET 键{回车}:

    Info mode screenshot

    Emacs 手册是学习 Emacs 的最佳资源,我们可以输入 C-h r 来阅读它。我们也可以在网上阅读该手册

    Emacs 还有许多其它的帮助功能,其中一部分将在后面介绍。输入 C-h C-h 可以查看全部帮助项目列表。

  • Emacs 入门指南:引言

    今起我将陆续发布 Emacs 官方使用指引 A Guided Tour of Emacs 的译文《Emacs 入门指南》,需要说明的是,本翻译完全出于兴趣爱好,与 Emacs 官方中文翻译组无关。

    Emacs 入门指南翻译说明

    为了使读者们能够快速准确地理解本文内容,在此首先对下面译文中出现的一些特别格式作出说明。

    • 原文已有的圆括号,即:(),在译文中原样保留,即:()。
    • 花括号内的文字是为了便于理解由译者添加的,即:{文本}。
    • 方括号加数字用于为译注标号,对应“Emacs 入门指南译注”一节的内容,即:[2]。
    • 本文提及的 meta/M 键对应 PC 的 Alt 键。

    Emacs 入门指南

    Emacs splash screen

    GNU Emacs 手册将 Emacs 定义为可扩展、可定制、自文档化的实时显示编辑器,但如此描述并未告诉初学者们 Emacs 能做哪些事情。为了让读者们就 Emacs 建立起一定的感性认识,下面列举一些能够借助 Emacs 完成的事务:

    除了能编辑纯文本文件,Emacs 还可以编写各种不同的人类语言和编程/标记语言:

    'Hello' in various languages

    Syntax highlighting in Latex mode

    Syntax highlighting in C mode

    (点击查看原始图片。)

    … 以及作为编译、运行和测试程序的工具。Emacs 可以整合 GDB 提供集成开发环境( M-x gdb ):

    GDB mode screenshot

    Emacs 还可以比较两个文件,并高亮不同之处( M-x ediff ):

    Ediff mode screenshot

    Emacs 既是一个文件管理器( M-x dired ):

    Close-up view of Dired

    Emacs 又是新闻、电子邮件和 RSS 源的阅读器( M-x gnus ):

    Gnus screenshot

    更有甚者,我们用 Emacs 玩玩俄罗斯方块也没问题( M-x tetris ):

    Tetris screenshot

    通过以上事例我们不难理解,为什么有些人认为 Emacs 不仅仅是一个文本编辑器,而几乎是一个完整的操作系统了。有些用户觉得自己可以用 Emacs 完成几乎全部工作。

    未完待续……