﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-天高任鸟飞  海阔凭鱼跃-随笔分类-Emacs</title><link>http://www.cppblog.com/jaunt/category/3056.html</link><description>……C++正在学习中……</description><language>zh-cn</language><lastBuildDate>Wed, 21 May 2008 21:07:10 GMT</lastBuildDate><pubDate>Wed, 21 May 2008 21:07:10 GMT</pubDate><ttl>60</ttl><item><title>Emacs Lisp 功能扩展集锦</title><link>http://www.cppblog.com/jaunt/archive/2006/11/20/15460.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Mon, 20 Nov 2006 05:08:00 GMT</pubDate><guid>http://www.cppblog.com/jaunt/archive/2006/11/20/15460.html</guid><wfw:comment>http://www.cppblog.com/jaunt/comments/15460.html</wfw:comment><comments>http://www.cppblog.com/jaunt/archive/2006/11/20/15460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jaunt/comments/commentRss/15460.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jaunt/services/trackbacks/15460.html</trackback:ping><description><![CDATA[
		<p>Emacs 具有超强的扩展性。这是当今没有任何其它编辑器可以比拟的强大特点。这里介绍一些很方便的 Emacs Lisp 扩展。<a href="http://learn.tsinghua.edu.cn:8080/2001315450/emacs_elisp.html"><br />http://learn.tsinghua.edu.cn:8080/2001315450/emacs_elisp.html</a></p>
<img src ="http://www.cppblog.com/jaunt/aggbug/15460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jaunt/" target="_blank">Jaunt</a> 2006-11-20 13:08 <a href="http://www.cppblog.com/jaunt/archive/2006/11/20/15460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GNU Emacs 命令列表</title><link>http://www.cppblog.com/jaunt/archive/2006/11/16/15244.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Thu, 16 Nov 2006 09:17:00 GMT</pubDate><guid>http://www.cppblog.com/jaunt/archive/2006/11/16/15244.html</guid><wfw:comment>http://www.cppblog.com/jaunt/comments/15244.html</wfw:comment><comments>http://www.cppblog.com/jaunt/archive/2006/11/16/15244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jaunt/comments/commentRss/15244.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jaunt/services/trackbacks/15244.html</trackback:ping><description><![CDATA[ <span style="FONT-WEIGHT: bold"></span><span style="BACKGROUND-COLOR: rgb(51,153,153)"></span>Emacs 命令通常包含有 CONTROL 键（有时候以 CTRL 或 CTL 来标示）或是<br /><p><font color="#808000">META 键（有时候以 EDIT 或 ALT 来标示）。为了避免每一次都要写出其全名，<br />我们将会使用下述的缩写：</font></p><p><font color="#808000">    C-&lt;chr&gt; 表示按住 CONTROL 键的同时键入字符 &lt;chr&gt; 。例如 C-f 就是：按<br />                   住 CONTROL 键再键入 f 。</font></p><p><font color="#808000">    M-&lt;chr&gt; 表示按住 META 键再键入字符 &lt;chr&gt; 。 如果没有 META 键时，可以<br />                   用「按一下 ESC 键」来替代 META。我们以 &lt;ESC&gt; 来表示 ESC 键。</font></p><p><br />* <strong>SUMMARY</strong><br />----------------- </p><p>        C-v           向前移动一个屏幕／窗格 = PageUp<br />        M-v           向后移动一个屏幕／窗格 = PageDn </p><p>        C-l            清除屏幕／窗格，再重新显示所有文字，<br />                         光标所在位置显示於屏幕／窗格的中央。<br />                        （是 CONTROL-L 而不是 CONTROL-1） </p><p>* <strong>BASIC CURSOR CONTROL</strong><br />---------------------------------------- </p><p><font color="#808000">    META 用作与「以语言定义出的单位（字、句子、段落）」有关的操作<br />    CONTROL 用作「与您所编辑无关的『基本』单位（字符或行等）」上。</font></p><p>        C-f           往前移动一个字符<br />        C-b          往回移动一个字符 </p><p>        M-f           往前移动一个字【中文是移动到下一个标点符号】<br />        M-b          往回移动一个字【中文是移动到上一个标点符号】 </p><p>        C-n          移动到下一行（往下移）<br />        C-p          移动到上一行（往上移） </p><p>        C-a          移动到行首<br />        C-e          移动到行尾 </p><p>        M-a          移回句首<br />        M-e          移到句尾 </p><p>        M-&lt;         （META Less-than），移动到文字的最开始，<br />        M-&gt;         （META Greater-than），移动到文字的最后。 </p><p><font color="#808000">    P 表示 previous<br />    N 表示 next<br />    B 表示 backward<br />    F 表示 forward </font></p><p>        C-u <em>数字参数</em><em>其它命令</em><br />        M <em>数字参数</em><em>其它命令<br /></em><font color="#808000">    大部份的 Emacs 命令接受数字参数；对大部份的命令而言，它的作用是指定重<br />    复次数。</font></p><p>        C-g         停止当前命令，或取消操作 </p><p>* <strong>INSERTING AND DELETING<br /></strong>-------------------------------------- </p><p>        &lt;Return&gt;                    carriage-return <br />        C-u <em>重复数</em><em>字符</em> 重复输入N个字符 </p><p><br />        &lt;Delback&gt;          删除光标 前一个字符<br />        C-d          删除光标 后一个字符 </p><p>        M-&lt;Delback&gt;      删除光标 前一个字<br />        M-d          删除光标 后一个字 </p><p>        C-k          删除从光标到「行尾」的字符<br />        M-k          删除从光标到「句尾」的字符 </p><p>        C-@<br />        C-SPC        设置Mark Set（任一个即可）。 </p><p>        C-w         杀掉选中文字（剪切）<br />        C-y          拉回（yanking）（粘贴）<br />        M-y          拉回上次、上上次……的内容 </p><p><font color="#808000">    「拉回（yanking）」：即“粘贴”<br />    「杀掉（killing）」：即“剪切”，可以yanking<br />    「删除（deleting）」：不能yanking</font></p><p>        C-x u<br />        C-/<br />        C-_          Undo </p><p>        C-x C-f        打开文件（visiting file，find file）<br />        C-x C-s       保存文件 </p><p><font color="#808000">注意：在某些系统中，键入 C-x C-s 将会把屏幕冻结，您将看不到从 Emacs 来<br />的任何输出。这表示操作系统一个称为「流程控制」的「功能」将 C-s 命令拦<br />截住，并且不让它传到 Emacs。要取消屏幕的冻结，请键入 C-q。然后到 Emacs<br />使用手册中看看对於「渐进式搜寻的同时进入（Spontaneous Entry to<br />Incremental Search）」这个主题，以取得处理这个「功能」的建议。</font></p><p><br /><font color="#808000">    Emacs 将每个文件的文字在「缓冲区（buffer）」中。<br />    打开一个文件会在 Emacs 内部建立一个缓冲区。</font></p><p>        C-x C-b      列出缓冲区<br />        C-x b          编辑某个缓冲区（要求输入缓冲区名）<br />        C-x s          询问是否要保存所有修改过的缓冲区。 </p><p><br />* <strong>EXTENDING THE COMMAND SET</strong><br />----------------------------------------- </p><p>        C-x            字符扩充。后面跟著一个字符。<br />        M-x            有名称的命令扩充。后面跟著一个长的名称。<br />                          键入 M-x 时，Emacs 会询问您命令的名称。 </p><p>        C-z            是 *暂时* 退出 Emacs 的命令<br />        C-x C-c     退出 </p><p><font color="#808000">  其它 C-x 命令。</font></p><p>        C-x C-f          找文件。<br />        C-x C-s         储存文件。<br />        C-x C-b         列出缓冲区。<br />        C-x C-c         退出 Emacs。<br />        C-x 1             除了一个外，删去其它所有的窗格。<br />        C-x u             取消动作。 </p><p>        M-x replace-string s&lt;Return&gt;changed&lt;Return&gt;altered&lt;Return&gt; </p><p>* <strong>AUTO SAVE<br /></strong>----------------------- </p><p>        M-x recover file&lt;Return&gt; 从自动保存文件中恢复 </p><p><br />* <strong>MODE LINE<br /></strong>---------------------<br /><font color="#808000">  --:**  TUTORIAL.cn       (Fundamental)--L670--58%----------------</font></p><p><font color="#808000">    -- 就是您找的文件。<br />    -NN%-- 有 NN 百分比的文字位在窗格的上面。<br />    如果文件的顶端就位在窗格中，那么它就会显示 --Top--<br />    如果文件的底部就位在窗格中，那么它是显示 --Bot--<br />    如果在窗格中足以看到全部的内容，那么状态行就会显示 --All--</font></p><p><font color="#808000">    L 目前所在的行数（Line）。</font></p><p><font color="#808000">  编辑模式</font></p><p><font color="#808000">    如 Lisp 模式、 Text 模式，C/C++模式……</font></p><p><font color="#808000">    主要（major）、次模式（minormode）<br />       次要的模式不是主模式的后选，而是次要的更改<br />       每个次模式可以自身启用或停止，和所有其它的次模式无关<br />       可以组合任何数量的次模式</font></p><p>      M-x fundamental-mode&lt;Return&gt;       Fundamental 模式<br />      M-x text mode&lt;Return&gt;                        Text模式 </p><p>      M-x auto fill mode&lt;Return&gt;                 Auto Fill 模式（自动换行，即所谓的fill）<br />                                                                        Auto Fill 只在空白处断行。<br />      M-q                                                           Auto Fill re-fill<br />      C-x f                                                          Auto Fill 改变每行的长度（连界）<br />      C-u 2 0 C-x f                                            以 20 个字符，进行 fill </p><p>      C-h m                                                       列出所有模式 </p><p>* <strong>SEARCHING</strong><br />------------------- </p><p><font color="#808000">Emacs 搜寻命令与大部分编辑器的搜寻命令不同的地方在於，它是「渐进的<br />（incremental）」。这表示搜寻发生在您键入想要搜寻的文字串后。</font></p><p><font color="#808000">「I-search」：「渐进式搜寻」</font></p><p>      C-s 往前搜寻<br />      C-r 往回搜寻<br />      C-g  也可以用来结束搜寻。<br />      &lt;Return&gt; 结束搜寻。 </p><p>* <strong>MULTIPLE WINDOWS</strong><br />------------------------------ </p><p>      C-u 0 C-l     移动光标到当前行<br />      C-u XXX C-l  移动到XXX行<br />      C-x 1         仅保留当前窗格（光标所在的窗格）<br />      C-x 2         水平拆分当前窗格<br />      C-x 3         垂直拆分当前窗格<br />      C-M-v         卷动下方的窗格。（键入 ESC C-v 亦可。）<br />      C-x o         （o是other的意思），将光标移动到下方的窗格。<br />      C-x 4 C-f     在新窗格中打开文件，并编辑之<br />      C-x 5 C-f     新启动一个的Emacs，在之中打开文件 </p><p><br /></p><p>* <strong>RECURSIVE EDITING LEVELS</strong><br />------------------------------------------ </p><p><font color="#808000">有时候您会进入所谓的「递归编辑阶层」。它是由位在状态行的方括弧所指明，<br />并且包含住以小括弧来指明的模式名称。举例来说，您可能会看到<br />[(Fundamental)]，而不是 (Fundamental)。</font></p><p>      &lt;ESC&gt; &lt;ESC&gt; &lt;ESC&gt;        全功能命令，退出递归编辑<br />   也可以用来关闭多余的窗格，并且退出小缓冲区。 </p><p>* <strong>GETTING MORE HELP</strong><br />------------------------------------- </p><p>   C-h                          查询需要帮助的字元<br />   C-h ?                      Emacs 将会告诉您它能够提供的帮助。<br />   M-x help    <br />          <br />   C-h c                      查看简要说明<br />   C-h k                      查看详细说明<br />   C-h f                       解释一个函数。您要键入此函数的名称。<br />   C-h f previous-line&lt;Return&gt;<br /><br />   C-h v                    「您可以用来定制 Emacs 行为的变数」的文档。<br />   C-h a                     命令相关查找（Command Apropos）。<br />                                  键入一个关键字然后 Emacs 会列出所有「在其名称中含有此<br />                                  关键字」的全部命令。这些命令全部都可以经由 META-x 来启<br />                                  动。对於一些命令而言，命令相关查找也会列出「可以执行相<br />                                  同命令」的一个或两个字符的串列。 </p><p>   C-h i                      阅读在线使用手册（a.k.a. Info）。<br />                                  这个命令将您带到了称为「*info*」的特殊缓冲区，在那，您<br />                                  可以阅读安装在您的系统里的软件包的在线使用手册。键入<br />                                  m emacs &lt;Return&gt; 以阅读 Emacs 使用手册。如果您在此之前<br />                                  未曾使用过 Info 系统，请键入『?』。 Emacs 将会带您进入<br />                                  Info 模式功能的导览指南。一旦完成了本快速指南的研读，<br />                                  您应该查阅 Emacs Info 使用手册，以作为主要的参考文档。 </p><img src ="http://www.cppblog.com/jaunt/aggbug/15244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jaunt/" target="_blank">Jaunt</a> 2006-11-16 17:17 <a href="http://www.cppblog.com/jaunt/archive/2006/11/16/15244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>