ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
你可以用 <Delback> 来删除最后输入的的一个字符,这个跟你在 Emacs 之外的
用法应该一样。一般来说 <Delback> 就是位于 <Return> 键上方某处的一个大号
键,通常被标示为“Delete”、“Del”或者“Backspace”。


下面是一个关于“删除”操作的小结:

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

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

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

【可能你已经注意到了“删除(delete)”和“移除(kill)”的用词区别,后
文会有详细说明。】
-----------------------------------------------------------------------------------------------------
你也可以用一种统一的办法来删除缓冲区里的任何一部分:首先把光标移动到你
想要删除的区域的一端,然后按 C-@ 或 C-SPC(任一即可,SPC指空格)【注意,
C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就被系统拦截而无
法输入给 Emacs 了,因此这里还是推荐使用C-@。】,然后再移动到另一端,再
按 C-w 就可以把位于这两点之间的所有文字删除了。

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

注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以找回
来,而被删除的就不行了。【实际上,移除掉的东西虽然看起来“消失”了,但
实际上被 Emacs 记录了下来,因此还可以找回来;而删除掉的东西虽然也可能还
在内存里,但是已经被Emacs“抛弃”了,所以就找不回来了。】重新插入被移除
的文字称为“召回(yank)”。一般而言,那些会去除很多文字的命令会把去除
掉的文字储存起来(它们被设定成了“可召回”),而那些只是去除一个字符或
者只是去除空白的命令就不会储存那些被去除掉的东西(因此你就无法召回)。

-----------------------------------------------------------------------------------------------------
>> 移动光标到一非空白行的行头,然后输入 C-k 移除那一行上的文字。

>> 再次 C-k,你可以看到它移除了跟在那一行后面的换行符。

注意,单独的 C-k 会把一行的内容移除,而第二个 C-k 则会移除换行符,并使
其后所有的行都向上移动。C-k 处理数字参数的方式很特别,它会把参数指定的
那么多行连同其后的换行符一起移除,而不仅仅是重复 C-k 而已。比如 C-u 2
C-k 会把两行以及它们的换行符移除;而如果只是输入 C-k 两次显然不是这个结
果。
-------------------------------------------------------------------------------------------------------
将被移除的文字恢复的动作称为“召回(yanking)”。(就好像你把别人从你身
边移走的东西又猛力地拉回来。)你可以在你删除文字的地方召回,也可以在别
的地方召回,还可以多次召回同样的文字以得到它的多个拷贝。

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

>> 试试看,输入 C-y 将文字召回。

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

>> 在这里试试,连续按几次 C-k。

现在再来恢复刚刚被我们移除的文字:

>> 按 C-y。然后把光标往下移动几行,再按一次 C-y。
   现在你应该知道怎么复制文字了。

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

如果你一次按 M-y 按了很多下,你可能会回到起始点,也就是最近移除的文字。
【看得出这实际上是一个环。】

>> 移除一行,移动一下光标,然后再移除另外一行。
   按 C-y 将第二次移除的那行召回来。
   紧接着再按 M-y,它将会被第一次移除的那行取代。
   试着再按几下 M-y 看看会发生什么。
   再继续,直到第二行被召回来,然后再做个几次。
   如果你愿意,你可以试着给 M-y 指定一个正的或负的参数。
posted on 2005-11-08 13:54 ivaneeo 阅读(262) 评论(0)  编辑  收藏 所属分类: emacs-牛露锋芒

只有注册用户登录后才能发表评论。


网站导航: