Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112417
  • 博文数量: 22
  • 博客积分: 1611
  • 博客等级: 上尉
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-04 21:29
文章分类

全部博文(22)

文章存档

2015年(2)

2014年(1)

2012年(2)

2011年(6)

2010年(11)

我的朋友

分类:

2010-08-04 21:52:27



重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。


        C-v     向前移动一屏
        M-v     向后移动一屏
        C-l     重绘屏幕,并将光标所在行置于屏幕的中央
                (注意是 CONTROL-L,不是 CONTROL-1)


基本的光标控制(BASIC CURSOR CONTROL)

--------------------------------------------------------------------------------


                             上一行 C-p
                                  :
                                  :
            向左移 C-b .... 目前光标位置 .... 向右移 C-f
                                  :
                                  :
                             下一行 C-n

“P N B F”四个字母分别代表了四个词,用这四个词记忆这些组合键会更容易: P 代表 previous(上一行),N 代表 next(下一行),B 代表 backward(回退),而 F 则代表 forward(前进)。这些组合键今后将与你形影不离。

M-f (META-f) 可以将光标往前移动一个词,而 M-b 则是往后移。

通常的惯例是:META 系列组合键用来操作“由语言定义的单位(比如词、句子、段落)”,而 CONTROL 系列组合键用来操作“与语言无关的基本单位(比如字符、行等等)”。

C-a 和 C-e 可以将光标移动到 “一行”的头部和尾部;而 M-a 和 M-e 则将光标移动到“一句”的头部和尾部。

光标停留的位置也可以称作“点位”(point)。或者干脆说,光标指示出了屏幕上“点位”在文本中的位置。

这里对简单的光标移动命令做一个总结,其中也包括了整词和整句的移动:


        C-f     向右移动一个字符
        C-b     向左移动一个字符

        M-f     向右移动一个词【中文是移动到下一个标点符号】
        M-b     向左移动一个词【中文是移动到上一个标点符号】

        C-n     移动到下一行
        C-p     移动到上一行

        C-a     移动到行首
        C-e     移动到行尾

        M-a     移动到句首
        M-e     移动到句尾

M-< (META 小于号)可以将光标移动到所有文字的最开头;M-> (META 大于号)可以将光标移动到所有文字的最末尾。

注意,在大部分键盘上,小于号(<)需要用上档键(Shift)来输入,所以在这些键盘上你应该用 Shift 键来输入 M-<,如果不按 Shift 键,你输入的会是 M-comma(META 逗号)。

为一个命令指定数字参数(也就是重复次数)的方法是:先输入 C-u,然后输入数字作为参数,最后再输入命令。

举例来说, C-u 8 C-f 会向前移动 8 个字符。

在 EMACS 失去响应的时候(WHEN EMACS IS HUNG)

--------------------------------------------------------------------------------

如果 Emacs 对你的命令失去响应,你可以很安全地用 C-g 来终止这个命令。 C-g 也可以被用来终止一个执行过久的命令。

C-g 还可以被来取消数字参数和那些输入到一半的命令。

窗格(WINDOWS)

--------------------------------------------------------------------------------

C-x 1   只保留一个窗格(也就是关掉其他所有的窗格)。


插入与删除(INSERTING AND DELETING)

--------------------------------------------------------------------------------

>> 试试 C-u 8 *,这将会插入 ********。

            删除光标前的一个字符
        C-d          删除光标后的一个字符

        M-  移除光标前的一个词
        M-d          移除光标后的一个词

        C-k          移除从光标到“行尾”间的字符
        M-k          移除从光标到“句尾”间的字符

>> 移动光标到上一段开头的“你”字。 >> 输入 C-@ 。Emacs 应该会在屏幕的下方显示一个“Mark set”的消息。 >> 移动光标到第二行中的“端”字。 >> 输入 C-w,就会把从“你”开始到“端”之前的文字全部移除。

召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。

如果你一次连按了好几下 C-k,那么所有被移除的行会被存储在一起,只要一个 C-y 就可以把它们都召回。

在用C-y 召回最近移除的文字之后,紧接着再用 M-y 就可以召回再前一次被移除的文字,再按一次 M-y 又可以召回再上一次的,因此只要多按几次 M-y 就可以找到你想要召回的东西了。找到了之后,你什么也不用做,把它们晾在那里,继续你的编辑就行了。

撤销(UNDO)

--------------------------------------------------------------------------------

如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销: C-x u。

C-_ 也是撤销命令;它的作用跟 C-x u 一样,但是它比较容易多次输入。C-_ 的缺点是在某些键盘上可能不太容易按,这也正是我们同时提供 C-x u 的原因。在某些终端上,你可以按住 CONTROL 再按“/”来输入 C-_。

文件(FILE)

--------------------------------------------------------------------------------

        C-x C-f   寻找一个文件

在小缓冲里输入文件名(其实输入别的东西也一样)时可以用 C-g 取消。

        C-x C-s   储存这个文件

缓冲区(BUFFER)

--------------------------------------------------------------------------------

如果你用 C-x C-f 找到第二个文件,第一个文件仍然会在 Emacs 里。要切回第一个文件,你可以 C-x C-f 再次寻找它。这样,你可以在 Emacs 里同时打开很多文件。

>> 用 C-x C-f foo 的方式建立一个名为“foo”的文件。

        C-x C-b   列出缓冲区

>> 现在就试一下 C-x C-b

>> 输入 C-x 1 离开缓冲区列表

>> 输入 C-x b foo 以回到文件“foo”的缓冲区。

   然后输入 C-x b TUTORIAL.cn 回到这里。

        C-x s   保存多个缓冲区

C-x s 会找到所有已被修改但尚未存盘的缓冲区,然后向你逐个询问,是否需要存盘?

命令集扩展(EXTENDING THE COMMAND SET)

--------------------------------------------------------------------------------

Emacs 的命令就像天上的星星,数也数不清。把它们都对应到 CONTROL 和 META 组合键上显然是不可能的事情。Emacs 用扩展(eXtend)命令来解决这个问题,扩展命令有两种风格:

        C-x     字符扩展。  C-x 之后输入另一个字符或者组合键。
        M-x     命令名扩展。M-x 之后输入一个命令名。

很多扩展命令都很有用,虽然与你已经学过的命令比起来,他们可能不那么常用。你应该已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s 保存文件。退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会给你带来什么损失,Emacs 会在退出之前提醒你保存文件的)

在控制台下,C-z 可以暂时离开 Emacs——当然,你还可以再回来。

C-x 的扩展命令有很多,下面列出的是你已经学过的:


        C-x C-f         寻找文件。
        C-x C-s         保存文件。
        C-x C-b         列出缓冲区。
        C-x C-c         离开 Emacs。
        C-x 1           关掉其它所有窗格,只保留一个。
        C-x u           撤销。

用命令名扩展的命令一般都不太常用,或者只在部分模式下被用到。比如 replace-string(字符串替换)这个命令,它会在全文范围内把一个字符串替换成另一个。在你输入 M-x 的时候,Emacs 会在屏幕底端向你询问,然后你应该输入命令名。如果你想输入“replace-string”,其实只需要敲“repl s”就行了,Emacs 会帮你自动补齐的。输入完之后按


字符串替换命令需要两个参数——被替换的字符串和用来替换它的字符串。每个参数的输入用换行符来结束。


>> 将光标移到本行的下两行空白,然后输入

   M-x repl schangedaltered

   【为了继续练习,保留一行原文如下:
   Notice how this line has changed: you've replaced... 】

请注意这一行是怎么改变的:在光标之后的范围内,你已经将“changed”这个词——不管它在哪里出现——全部用“altered”替换掉了。

自动保存(AUTO SAVE)

--------------------------------------------------------------------------------

如果你修改了一个文件但是还没来得及存盘,然后你的计算机罢工了,那么你编辑的东西很可能就找不回来了。为了避免这样的不幸一再发生,Emacs 会定期将你正在编辑的文件存入一个“自动保存”文件中。自动保存的文件名的头尾各有一个“#”字符,比如你正在编辑“hello.c”,那么它的自动保存文件就叫 “#hello.c#”。在你正常存盘之后,Emacs 会删除自动保存文件。


假如不幸真的发生了,你大可以从容的打开原来的文件(注意不是自动保存文件)然后输入 M-x recover file 来恢复你的自动保存文件。在提示确认的时候,输入 yes 就行了。


回显区(ECHO AREA)

--------------------------------------------------------------------------------

如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区” 的地方给你提示。回显区位于屏幕的最后一行。


状态栏(MODE LINE)

--------------------------------------------------------------------------------

状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。

>> 输入 M-x text mode

别害怕,没有什么命令会改变功能。不过你可以发现,M-f 和 M-b 现在把单引号(')视为词的一部分了。而在先前,在 Fundamental 模式中,M-f 和 M-b 都将单引号视为分隔单词的符号。

>> 用 C-u C-v 将本行带到靠近屏幕的上方。 >> 输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。 >> 输入 C-x 1 关掉文档窗格。

用 M-x auto fill mode 启动自动折行模式。启动之后,如果我们再用一次 M-x auto fill mode,自动折行模式就被关闭了。也就是说,如果自动折行模式没有开启,这个命令会开启它;而如果已经开启了,这个命令会关闭它。我们说这个命令用来“开关(toggle)”模式。 必须敲一些空格,因为 Auto Fill 只在空白处进行断行。

行边界通常被设定为 70 个字符【这里指英文字符】,你可以用 C-x f 命令来重新设定之。指定新行边界可以用数字参数来进行传递。

>> 输入 C-x f 并传递参数 20: C-u 2 0 C-x f。

   然后输入一些文字,观察 Emacs 的自动折行动作
   最后再用 C-x f 将边界设回 70。

如果你在段落的中间做了一些修改,那么自动折行模式不会替你把整个段落重新折行。重新自动折行用 M-q,注意使用的时候光标必须位于你想折行的那一段里。


>> 移动光标到前一段中,然后输入 M-q。


搜索(SEARCHING)

--------------------------------------------------------------------------------

C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!先等等别着急试。

在你按下 C-s 之后,你会发现回显区里有“I-search”字样出现,这是在提示你目前 Emacs 正处于“渐进搜索”状态,正在等待你输入搜索字串。 会结束搜索。

 

阅读(2187) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~