⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node13.html

📁 同样是来自国外的经典python教材
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>  <title>A. 互动式输入编辑及代换过去的内容</title>    <meta name="description" content="A. 互动式输入编辑及代换过去的内容 ">   <meta name="keywords" content="tut">   <meta name="resource-type" content="document">   <meta name="distribution" content="global">   <link rel="STYLESHEET" href="tut.css">   <link rel="next" href="node14.html">   <link rel="previous" href="node12.html">   <link rel="up" href="tut.html">   <link rel="next" href="node14.html"></head> <body> <div class="navigation"><p></p><hr><table align="Center" width="100%" cellpadding="0" cellspacing="2"> <tbody>    <tr> <td><a href="node12.html"><img src="../icons/previous.gif" border="0" height="32" alt="Previous Page" width="32"></a></td> <td><a href="tut.html"><img src="../icons/up.gif" border="0" height="32" alt="Up One Level" width="32"></a></td> <td><a href="node14.html"><img src="../icons/next.gif" border="0" height="32" alt="Next Page" width="32"></a></td> <td align="Center" width="100%">Python 教学文件</td> <td><a href="node2.html"><img src="../icons/contents.gif" border="0" height="32" alt="Contents" width="32"></a></td> <td><img src="../icons/blank.gif" border="0" height="32" alt="" width="32"></td> <td><img src="../icons/blank.gif" border="0" height="32" alt="" width="32"></td> </tr>  </tbody></table> <b class="navlabel">Previous:</b> <a class="sectref" href="node12.html">10. 现在呢? </a> <b class="navlabel">Up:</b> <a class="sectref" href="tut.html">Python 教学文件</a> <b class="navlabel">Next:</b> <a class="sectref" href="node14.html">关于此文件&hellip;</a> </div> <!--End of Navigation Panel--> <!--Table of Child-Links--> <a name="CHILD_LINKS"><strong>小段落 </strong></a>  <ul>   <li><a name="tex2html391" href="node13.html#SECTION0013100000000000000000">A.1 整行编辑 </a> </li>  <li><a name="tex2html392" href="node13.html#SECTION0013200000000000000000">A.2 代换过去的内容 </a> </li>  <li><a name="tex2html393" href="node13.html#SECTION0013300000000000000000">A.3 键盘连结 </a> </li>  <li><a name="tex2html394" href="node13.html#SECTION0013400000000000000000">A.4 评注 </a> </li></ul> <!--End of Table of Child-Links--> <hr>  <h1> <br> A. 互动式输入编辑及代换过去的内容           </h1>  <p> 有些的Python的直译器版本有支援目前所在行的编辑,以及过去输入内容的代换,这跟在Korn Shell以及GNU Bash shell里面的一些功能有点像。这个功能是用 <i>GNU Readline</i> 的程式库做出来的,提供了类似Emacs以及类似vi的编辑功能。这个程式库本身有自己的参考文件,所以我在此不再重复,我只是简单的介绍基本的功能。这里所介绍的互动模式输入编辑及代换过去内容的功能通常在Unix以及CygWin的直译器版本都可以见得到。  </p><p> 本章 <i>没有</i> 包含在Mark Hammond的PythonWin package里的编辑功能,也没有包含在标准Python distribution里面的Tk之类的环境,或是IDLE的编辑功能。在DOS以及NT及其他类似的环境下,也有命令列过去内容记忆的功能,但是也不在本文的内容之中。  </p><p>  </p><h1> <br> A.1 整行编辑  </h1>  <p> 如果有支援整行编辑的话,当直译器印出primary prompt或是secondary prompt的时候,整行编辑的功能就会被启动起来。你可以用一般的Emacs控制字元来编辑目前所在的行。其中常见的有这些:<kbd>C-A</kbd> (Control-A)会移动cursor到目前行的最开头的地方, <kbd>C-E</kbd> 会移动到最尾端, <kbd>C-B</kbd> 会往左移动一个位置, <kbd>C-F</kbd> 会往右边一个位置。Backspace键会消去目前cursor所在处左边的一个字元,<kbd>C-D</kbd> 会消去右边的一个字元,  <kbd>C-K</kbd> 会杀掉 (消去)本行在游标之后的所有字元, <kbd>C-Y</kbd> 会把刚刚所杀掉的字串再次贴回来,  <kbd>C-underscore</kbd> 会取消刚才所做的最后一个动作,这个功能也可以重复多次的使用。  </p><p>  </p><h1> <br> A.2 代换过去的内容  </h1>  <p> 要取代过去的内容其方法如下:所有的非空白行都会被储存在一个储存过去内容的缓冲区(history buffer)里面,当prompt出现的时候,你所在的位置就是在这个buffer的最底下,使用<kbd>C-P</kbd> 会使得在buffer里面往上移动一行,  <kbd>C-N</kbd> 会往下移动一行。任何在buffer里面的行都可以被编辑,若是在prompt之前出现星号的话就代表这个行已经被修改过了。当你按下<kbd>Return</kbd> 键的时候就是把目前这一行送给直译器了。 <kbd>C-R</kbd> 会开始一个逐渐往上的搜寻,按下  <kbd>C-S</kbd> 会开始往前的搜寻。   </p><p>  </p><h1> <br> A.3 键盘连结  </h1>  <p> 键盘的连结以及一些其他有关Readline library的参数都可以被修改,其方法是在一个叫做  <span class="file">~/.inputrc</span> 的初始化档案中打入一些指令。键盘的连结有以下的几种形式:   </p><p> </p><dl><dd><pre class="verbatim">key-name: function-name<br></pre>  </dd>  </dl>    <p> 或是   </p>  <p> </p>  <dl>  <dd><pre class="verbatim">"string": function-name<br></pre>    </dd>    </dl>      <p> 你也可以设定一些选项:   </p>    <p> </p>    <dl>    <dd><pre class="verbatim">set option-name value<br></pre>      </dd>      </dl>        <p> 请看下面的例子:   </p>      <p> </p>      <dl>      <dd><pre class="verbatim"># I prefer vi-style editing:<br>set editing-mode vi<br><br># Edit using a single line:<br>set horizontal-scroll-mode On<br><br># Rebind some keys:<br>Meta-h: backward-kill-word<br>"\C-u": universal-argument<br>"\C-x\C-r": re-read-init-file<br></pre>        </dd>        </dl>          <p> 注意的是在Python里面预设的 <kbd>Tab</kbd> 键所连结的是输入一个  <kbd>Tab</kbd> 字元,而非Readline程式库里面预设的档名自动完成的功能。如果你坚持的话,你也可以这样子设定来盖过Python的预设:   </p>        <p> </p>        <dl>        <dd><pre class="verbatim">Tab: complete<br></pre>          </dd>          </dl>            <p> 这应该在你的 <span class="file">~/.inputrc</span> 里面。(当然如果你这样做的话,你在缩排连续行的时候就费力一些了。)  </p>          <p> 自动完成变数及module的名称的功能是可以自由选择要或不要的。如果你要在互动模式下启动这一个功能的话,可以在启动档里面加入底下的指令:          <a name="tex2html6" href="#foot1328"><sup>A.1</sup></a>  </p>          <p> </p>          <dl>          <dd><pre class="verbatim">import rlcompleter, readline<br>readline.parse_and_bind('tab: complete')<br></pre>            </dd>            </dl>              <p> 这样做的话会使TAB 键连结到完成的功能,所以按下TAB键两次就会建议一些完整的名称。其所搜寻的是Python的叙述名称,目前的local变数,以及可用的module名称。对于像            <code>string.a</code> 这样带有点的expression,这项功能会先是着先evaluate到最后一个点的意思,然后再从所得的物件中建议可用的变数名称。注意的是,如果这个物件含有的 <tt class="method">__getattr__()</tt> 这个method是这个expression的一部份的话,就会执行一些特定的程式码。  </p>            <p>  </p>            <h1> <br> A.4 评注   </h1>              <p> 这个功能跟其他之前的直译器版本比起来是很大的一个进步,但是我们还有很多希望有的功能。如果在连续行的时候可以建议适当的缩排距离(分析器(parser)应该知道何时需要缩排)。自动完成的功能应该也能够使用直译器的symboltable。应该也要有一个指令可以检查(甚至是建议)何时应该要有结束的括弧,括号等等。  </p>            <p> <br>            </p>            <hr>            <h4>注脚</h4>             <dl>            <dt><a name="foot1328">... 底下的指令:</a><a name="foot1328" href="node13.html#tex2html6"><sup>A.1</sup></a> </dt>              <dd>   当你启动一个Python的互动式直译器时,Python会自动执行在     <a class="envvar" name="l2h-24">$PYTHONSTARTUP</a> 这个系统环境变数所代表的档案里面的指令。  </dd>                </dl>                 <div class="navigation">                <p></p>                <hr>                <table align="Center" width="100%" cellpadding="0" cellspacing="2"> <tbody>                    <tr> <td><a href="node12.html"><img src="../icons/previous.gif" border="0" height="32" alt="Previous Page" width="32"></a></td> <td><a href="tut.html"><img src="../icons/up.gif" border="0" height="32" alt="Up One Level" width="32"></a></td> <td><a href="node14.html"><img src="../icons/next.gif" border="0" height="32" alt="Next Page" width="32"></a></td> <td align="Center" width="100%">Python 教学文件</td> <td><a href="node2.html"><img src="../icons/contents.gif" border="0" height="32" alt="Contents" width="32"></a></td> <td><img src="../icons/blank.gif" border="0" height="32" alt="" width="32"></td> <td><img src="../icons/blank.gif" border="0" height="32" alt="" width="32"></td> </tr>                  </tbody>                </table> <b class="navlabel">Previous:</b> <a class="sectref" href="node12.html">10. 现在呢? </a> <b class="navlabel">Up:</b> <a class="sectref" href="tut.html">Python 教学文件</a> <b class="navlabel">Next:</b> <a class="sectref" href="node14.html">关于此文件&hellip;</a> </div> <!--End of Navigation Panel-->                 <address> </address>                <hr>请看<i><a href="about.html">关于此文件&hellip;</a></i> 里面有关如何给我们建议的说明。                  </body>                </html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -