Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 1 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| 3 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 4 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 5 | <html xmlns="http://www.w3.org/1999/xhtml"> |
| 6 | <head> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 7 | <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 8 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 9 | <title>26.5. IDLE — Python 3.8.0a0 documentation</title> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 10 | <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" /> |
| 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 12 | <script type="text/javascript" src="../_static/documentation_options.js"></script> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 13 | <script type="text/javascript" src="../_static/jquery.js"></script> |
| 14 | <script type="text/javascript" src="../_static/underscore.js"></script> |
| 15 | <script type="text/javascript" src="../_static/doctools.js"></script> |
| 16 | <script type="text/javascript" src="../_static/sidebar.js"></script> |
| 17 | <link rel="search" type="application/opensearchdescription+xml" |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 18 | title="Search within Python 3.8.0a0 documentation" |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 19 | href="../_static/opensearch.xml"/> |
| 20 | <link rel="author" title="About these documents" href="../about.html" /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 21 | <link rel="index" title="Index" href="../genindex.html" /> |
| 22 | <link rel="search" title="Search" href="../search.html" /> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 23 | <link rel="copyright" title="Copyright" href="../copyright.html" /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 24 | <link rel="next" title="26.6. Other Graphical User Interface Packages" href="othergui.html" /> |
| 25 | <link rel="prev" title="26.4. tkinter.scrolledtext — Scrolled Text Widget" href="tkinter.scrolledtext.html" /> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 26 | <link rel="canonical" href="https://docs.python.org/3/library/idle.html" /> |
| 27 | |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> |
| 33 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 34 | <script type="text/javascript" src="../_static/copybutton.js"></script> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 35 | |
| 36 | |
| 37 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 38 | |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 39 | </head><body> |
Terry Jan Reedy | f8cd02d | 2016-03-01 00:29:57 -0500 | [diff] [blame] | 40 | <div class="related" role="navigation" aria-label="related navigation"> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 41 | <h3>Navigation</h3> |
| 42 | <ul> |
| 43 | <li class="right" style="margin-right: 10px"> |
| 44 | <a href="../genindex.html" title="General Index" |
| 45 | accesskey="I">index</a></li> |
| 46 | <li class="right" > |
| 47 | <a href="../py-modindex.html" title="Python Module Index" |
| 48 | >modules</a> |</li> |
| 49 | <li class="right" > |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 50 | <a href="othergui.html" title="26.6. Other Graphical User Interface Packages" |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 51 | accesskey="N">next</a> |</li> |
| 52 | <li class="right" > |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 53 | <a href="tkinter.scrolledtext.html" title="26.4. tkinter.scrolledtext — Scrolled Text Widget" |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 54 | accesskey="P">previous</a> |</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 55 | |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 56 | <li><img src="../_static/py.png" alt="" |
| 57 | style="vertical-align: middle; margin-top: -1px"/></li> |
| 58 | <li><a href="https://www.python.org/">Python</a> »</li> |
| 59 | |
| 60 | |
| 61 | <li> |
| 62 | <a href="../index.html">3.8.0a0 Documentation</a> » |
| 63 | </li> |
| 64 | |
| 65 | <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li> |
| 66 | <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">26. Graphical User Interfaces with Tk</a> »</li> |
Terry Jan Reedy | 4b73676 | 2016-09-12 01:50:03 -0400 | [diff] [blame] | 67 | <li class="right"> |
| 68 | |
| 69 | |
| 70 | <div class="inline-search" style="display: none" role="search"> |
| 71 | <form class="inline-search" action="../search.html" method="get"> |
| 72 | <input placeholder="Quick search" type="text" name="q" /> |
| 73 | <input type="submit" value="Go" /> |
| 74 | <input type="hidden" name="check_keywords" value="yes" /> |
| 75 | <input type="hidden" name="area" value="default" /> |
| 76 | </form> |
| 77 | </div> |
| 78 | <script type="text/javascript">$('.inline-search').show(0);</script> |
| 79 | | |
| 80 | </li> |
| 81 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 82 | </ul> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 83 | </div> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 84 | |
| 85 | <div class="document"> |
| 86 | <div class="documentwrapper"> |
| 87 | <div class="bodywrapper"> |
Terry Jan Reedy | f8cd02d | 2016-03-01 00:29:57 -0500 | [diff] [blame] | 88 | <div class="body" role="main"> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 89 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 90 | <div class="section" id="idle"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 91 | <span id="id1"></span><h1>26.5. IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 92 | <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/master/Lib/idlelib/">Lib/idlelib/</a></p> |
Terry Jan Reedy | fa089b9 | 2016-06-11 15:02:54 -0400 | [diff] [blame] | 93 | <hr class="docutils" id="index-0" /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 94 | <p>IDLE is Python’s Integrated Development and Learning Environment.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 95 | <p>IDLE has the following features:</p> |
| 96 | <ul class="simple"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 97 | <li>coded in 100% pure Python, using the <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> GUI toolkit</li> |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 98 | <li>cross-platform: works mostly the same on Windows, Unix, and Mac OS X</li> |
Terry Jan Reedy | 6e10ec5 | 2015-09-23 20:00:33 -0400 | [diff] [blame] | 99 | <li>Python shell window (interactive interpreter) with colorizing |
| 100 | of code input, output, and error messages</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 101 | <li>multi-window text editor with multiple undo, Python colorizing, |
Terry Jan Reedy | 6e10ec5 | 2015-09-23 20:00:33 -0400 | [diff] [blame] | 102 | smart indent, call tips, auto completion, and other features</li> |
| 103 | <li>search within any window, replace within editor windows, and search |
| 104 | through multiple files (grep)</li> |
| 105 | <li>debugger with persistent breakpoints, stepping, and viewing |
| 106 | of global and local namespaces</li> |
| 107 | <li>configuration, browsers, and other dialogs</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 108 | </ul> |
| 109 | <div class="section" id="menus"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 110 | <h2>26.5.1. Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 111 | <p>IDLE has two main window types, the Shell window and the Editor window. It is |
| 112 | possible to have multiple editor windows simultaneously. Output windows, such |
| 113 | as used for Edit / Find in Files, are a subtype of edit window. They currently |
| 114 | have the same top menu as Editor windows but a different default title and |
| 115 | context menu.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 116 | <p>IDLE’s menus dynamically change based on which window is currently selected. |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 117 | Each menu documented below indicates which window type it is associated with.</p> |
| 118 | <div class="section" id="file-menu-shell-and-editor"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 119 | <h3>26.5.1.1. File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 120 | <dl class="docutils"> |
| 121 | <dt>New File</dt> |
| 122 | <dd>Create a new file editing window.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 123 | <dt>Open…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 124 | <dd>Open an existing file with an Open dialog.</dd> |
| 125 | <dt>Recent Files</dt> |
| 126 | <dd>Open a list of recent files. Click one to open it.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 127 | <dt>Open Module…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 128 | <dd>Open an existing module (searches sys.path).</dd> |
| 129 | </dl> |
| 130 | <dl class="docutils" id="index-1"> |
| 131 | <dt>Class Browser</dt> |
| 132 | <dd>Show functions, classes, and methods in the current Editor file in a |
| 133 | tree structure. In the shell, open a module first.</dd> |
| 134 | <dt>Path Browser</dt> |
| 135 | <dd>Show sys.path directories, modules, functions, classes and methods in a |
| 136 | tree structure.</dd> |
| 137 | <dt>Save</dt> |
| 138 | <dd>Save the current window to the associated file, if there is one. Windows |
| 139 | that have been changed since being opened or last saved have a * before |
| 140 | and after the window title. If there is no associated file, |
| 141 | do Save As instead.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 142 | <dt>Save As…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 143 | <dd>Save the current window with a Save As dialog. The file saved becomes the |
| 144 | new associated file for the window.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 145 | <dt>Save Copy As…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 146 | <dd>Save the current window to different file without changing the associated |
| 147 | file.</dd> |
| 148 | <dt>Print Window</dt> |
| 149 | <dd>Print the current window to the default printer.</dd> |
| 150 | <dt>Close</dt> |
| 151 | <dd>Close the current window (ask to save if unsaved).</dd> |
| 152 | <dt>Exit</dt> |
| 153 | <dd>Close all windows and quit IDLE (ask to save unsaved windows).</dd> |
| 154 | </dl> |
| 155 | </div> |
| 156 | <div class="section" id="edit-menu-shell-and-editor"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 157 | <h3>26.5.1.2. Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 158 | <dl class="docutils"> |
| 159 | <dt>Undo</dt> |
| 160 | <dd>Undo the last change to the current window. A maximum of 1000 changes may |
| 161 | be undone.</dd> |
| 162 | <dt>Redo</dt> |
| 163 | <dd>Redo the last undone change to the current window.</dd> |
| 164 | <dt>Cut</dt> |
| 165 | <dd>Copy selection into the system-wide clipboard; then delete the selection.</dd> |
| 166 | <dt>Copy</dt> |
| 167 | <dd>Copy selection into the system-wide clipboard.</dd> |
| 168 | <dt>Paste</dt> |
| 169 | <dd>Insert contents of the system-wide clipboard into the current window.</dd> |
| 170 | </dl> |
| 171 | <p>The clipboard functions are also available in context menus.</p> |
| 172 | <dl class="docutils"> |
| 173 | <dt>Select All</dt> |
| 174 | <dd>Select the entire contents of the current window.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 175 | <dt>Find…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 176 | <dd>Open a search dialog with many options</dd> |
| 177 | <dt>Find Again</dt> |
| 178 | <dd>Repeat the last search, if there is one.</dd> |
| 179 | <dt>Find Selection</dt> |
| 180 | <dd>Search for the currently selected string, if there is one.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 181 | <dt>Find in Files…</dt> |
Terry Jan Reedy | 929d7f8 | 2016-05-02 18:30:02 -0400 | [diff] [blame] | 182 | <dd>Open a file search dialog. Put results in a new output window.</dd> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 183 | <dt>Replace…</dt> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 184 | <dd>Open a search-and-replace dialog.</dd> |
| 185 | <dt>Go to Line</dt> |
| 186 | <dd>Move cursor to the line number requested and make that line visible.</dd> |
| 187 | <dt>Show Completions</dt> |
| 188 | <dd>Open a scrollable list allowing selection of keywords and attributes. See |
| 189 | Completions in the Tips sections below.</dd> |
| 190 | <dt>Expand Word</dt> |
| 191 | <dd>Expand a prefix you have typed to match a full word in the same window; |
| 192 | repeat to get a different expansion.</dd> |
| 193 | <dt>Show call tip</dt> |
| 194 | <dd>After an unclosed parenthesis for a function, open a small window with |
| 195 | function parameter hints.</dd> |
| 196 | <dt>Show surrounding parens</dt> |
| 197 | <dd>Highlight the surrounding parenthesis.</dd> |
| 198 | </dl> |
| 199 | </div> |
| 200 | <div class="section" id="format-menu-editor-window-only"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 201 | <h3>26.5.1.3. Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 202 | <dl class="docutils"> |
| 203 | <dt>Indent Region</dt> |
| 204 | <dd>Shift selected lines right by the indent width (default 4 spaces).</dd> |
| 205 | <dt>Dedent Region</dt> |
| 206 | <dd>Shift selected lines left by the indent width (default 4 spaces).</dd> |
| 207 | <dt>Comment Out Region</dt> |
| 208 | <dd>Insert ## in front of selected lines.</dd> |
| 209 | <dt>Uncomment Region</dt> |
| 210 | <dd>Remove leading # or ## from selected lines.</dd> |
| 211 | <dt>Tabify Region</dt> |
| 212 | <dd>Turn <em>leading</em> stretches of spaces into tabs. (Note: We recommend using |
| 213 | 4 space blocks to indent Python code.)</dd> |
| 214 | <dt>Untabify Region</dt> |
| 215 | <dd>Turn <em>all</em> tabs into the correct number of spaces.</dd> |
| 216 | <dt>Toggle Tabs</dt> |
| 217 | <dd>Open a dialog to switch between indenting with spaces and tabs.</dd> |
| 218 | <dt>New Indent Width</dt> |
| 219 | <dd>Open a dialog to change indent width. The accepted default by the Python |
| 220 | community is 4 spaces.</dd> |
| 221 | <dt>Format Paragraph</dt> |
| 222 | <dd>Reformat the current blank-line-delimited paragraph in comment block or |
| 223 | multiline string or selected line in a string. All lines in the |
| 224 | paragraph will be formatted to less than N columns, where N defaults to 72.</dd> |
| 225 | <dt>Strip trailing whitespace</dt> |
Terry Jan Reedy | ff70289 | 2017-09-15 13:05:28 -0400 | [diff] [blame] | 226 | <dd>Remove trailing space and other whitespace characters after the last |
| 227 | non-whitespace character of a line by applying str.rstrip to each line, |
| 228 | including lines within multiline strings.</dd> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 229 | </dl> |
| 230 | </div> |
| 231 | <div class="section" id="run-menu-editor-window-only"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 232 | <span id="index-2"></span><h3>26.5.1.4. Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 233 | <dl class="docutils"> |
| 234 | <dt>Python Shell</dt> |
| 235 | <dd>Open or wake up the Python Shell window.</dd> |
| 236 | <dt>Check Module</dt> |
| 237 | <dd>Check the syntax of the module currently open in the Editor window. If the |
| 238 | module has not been saved IDLE will either prompt the user to save or |
| 239 | autosave, as selected in the General tab of the Idle Settings dialog. If |
| 240 | there is a syntax error, the approximate location is indicated in the |
| 241 | Editor window.</dd> |
| 242 | <dt>Run Module</dt> |
| 243 | <dd>Do Check Module (above). If no error, restart the shell to clean the |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 244 | environment, then execute the module. Output is displayed in the Shell |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 245 | window. Note that output requires use of <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code>. |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 246 | When execution is complete, the Shell retains focus and displays a prompt. |
| 247 | At this point, one may interactively explore the result of execution. |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 248 | This is similar to executing a file with <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span> <span class="pre">file</span></code> at a command |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 249 | line.</dd> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 250 | </dl> |
| 251 | </div> |
| 252 | <div class="section" id="shell-menu-shell-window-only"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 253 | <h3>26.5.1.5. Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 254 | <dl class="docutils"> |
| 255 | <dt>View Last Restart</dt> |
| 256 | <dd>Scroll the shell window to the last Shell restart.</dd> |
| 257 | <dt>Restart Shell</dt> |
| 258 | <dd>Restart the shell to clean the environment.</dd> |
Terry Jan Reedy | 4b73676 | 2016-09-12 01:50:03 -0400 | [diff] [blame] | 259 | <dt>Interrupt Execution</dt> |
| 260 | <dd>Stop a running program.</dd> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 261 | </dl> |
| 262 | </div> |
| 263 | <div class="section" id="debug-menu-shell-window-only"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 264 | <h3>26.5.1.6. Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 265 | <dl class="docutils"> |
| 266 | <dt>Go to File/Line</dt> |
| 267 | <dd>Look on the current line. with the cursor, and the line above for a filename |
| 268 | and line number. If found, open the file if not already open, and show the |
| 269 | line. Use this to view source lines referenced in an exception traceback |
| 270 | and lines found by Find in Files. Also available in the context menu of |
| 271 | the Shell window and Output windows.</dd> |
| 272 | </dl> |
| 273 | <dl class="docutils" id="index-3"> |
| 274 | <dt>Debugger (toggle)</dt> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 275 | <dd>When activated, code entered in the Shell or run from an Editor will run |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 276 | under the debugger. In the Editor, breakpoints can be set with the context |
| 277 | menu. This feature is still incomplete and somewhat experimental.</dd> |
| 278 | <dt>Stack Viewer</dt> |
| 279 | <dd>Show the stack traceback of the last exception in a tree widget, with |
| 280 | access to locals and globals.</dd> |
| 281 | <dt>Auto-open Stack Viewer</dt> |
| 282 | <dd>Toggle automatically opening the stack viewer on an unhandled exception.</dd> |
| 283 | </dl> |
| 284 | </div> |
| 285 | <div class="section" id="options-menu-shell-and-editor"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 286 | <h3>26.5.1.7. Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 287 | <dl class="docutils"> |
| 288 | <dt>Configure IDLE</dt> |
Terry Jan Reedy | 93f3542 | 2015-10-13 22:03:51 -0400 | [diff] [blame] | 289 | <dd><p class="first">Open a configuration dialog and change preferences for the following: |
| 290 | fonts, indentation, keybindings, text color themes, startup windows and |
| 291 | size, additional help sources, and extensions (see below). On OS X, |
| 292 | open the configuration dialog by selecting Preferences in the application |
| 293 | menu. To use a new built-in color theme (IDLE Dark) with older IDLEs, |
| 294 | save it as a new custom theme.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 295 | <p class="last">Non-default user settings are saved in a .idlerc directory in the user’s |
Terry Jan Reedy | 93f3542 | 2015-10-13 22:03:51 -0400 | [diff] [blame] | 296 | home directory. Problems caused by bad user configuration files are solved |
| 297 | by editing or deleting one or more of the files in .idlerc.</p> |
| 298 | </dd> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 299 | <dt>Code Context (toggle)(Editor Window only)</dt> |
| 300 | <dd>Open a pane at the top of the edit window which shows the block context |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 301 | of the code which has scrolled above the top of the window. Clicking a |
| 302 | line in this pane exposes that line at the top of the editor.</dd> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 303 | </dl> |
| 304 | </div> |
| 305 | <div class="section" id="window-menu-shell-and-editor"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 306 | <h3>26.5.1.8. Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 307 | <dl class="docutils"> |
| 308 | <dt>Zoom Height</dt> |
| 309 | <dd>Toggles the window between normal size and maximum height. The initial size |
| 310 | defaults to 40 lines by 80 chars unless changed on the General tab of the |
| 311 | Configure IDLE dialog.</dd> |
| 312 | </dl> |
| 313 | <p>The rest of this menu lists the names of all open windows; select one to bring |
| 314 | it to the foreground (deiconifying it if necessary).</p> |
| 315 | </div> |
| 316 | <div class="section" id="help-menu-shell-and-editor"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 317 | <h3>26.5.1.9. Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 318 | <dl class="docutils"> |
| 319 | <dt>About IDLE</dt> |
| 320 | <dd>Display version, copyright, license, credits, and more.</dd> |
| 321 | <dt>IDLE Help</dt> |
| 322 | <dd>Display a help file for IDLE detailing the menu options, basic editing and |
| 323 | navigation, and other tips.</dd> |
| 324 | <dt>Python Docs</dt> |
| 325 | <dd>Access local Python documentation, if installed, or start a web browser |
| 326 | and open docs.python.org showing the latest Python documentation.</dd> |
| 327 | <dt>Turtle Demo</dt> |
| 328 | <dd>Run the turtledemo module with example python code and turtle drawings.</dd> |
| 329 | </dl> |
| 330 | <p>Additional help sources may be added here with the Configure IDLE dialog under |
| 331 | the General tab.</p> |
| 332 | </div> |
| 333 | <div class="section" id="context-menus"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 334 | <span id="index-4"></span><h3>26.5.1.10. Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 335 | <p>Open a context menu by right-clicking in a window (Control-click on OS X). |
| 336 | Context menus have the standard clipboard functions also on the Edit menu.</p> |
| 337 | <dl class="docutils"> |
| 338 | <dt>Cut</dt> |
| 339 | <dd>Copy selection into the system-wide clipboard; then delete the selection.</dd> |
| 340 | <dt>Copy</dt> |
| 341 | <dd>Copy selection into the system-wide clipboard.</dd> |
| 342 | <dt>Paste</dt> |
| 343 | <dd>Insert contents of the system-wide clipboard into the current window.</dd> |
| 344 | </dl> |
| 345 | <p>Editor windows also have breakpoint functions. Lines with a breakpoint set are |
| 346 | specially marked. Breakpoints only have an effect when running under the |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 347 | debugger. Breakpoints for a file are saved in the user’s .idlerc directory.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 348 | <dl class="docutils"> |
| 349 | <dt>Set Breakpoint</dt> |
| 350 | <dd>Set a breakpoint on the current line.</dd> |
| 351 | <dt>Clear Breakpoint</dt> |
| 352 | <dd>Clear the breakpoint on that line.</dd> |
| 353 | </dl> |
| 354 | <p>Shell and Output windows have the following.</p> |
| 355 | <dl class="docutils"> |
| 356 | <dt>Go to file/line</dt> |
| 357 | <dd>Same as in Debug menu.</dd> |
| 358 | </dl> |
| 359 | </div> |
| 360 | </div> |
| 361 | <div class="section" id="editing-and-navigation"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 362 | <h2>26.5.2. Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2> |
| 363 | <p>In this section, ‘C’ refers to the <kbd class="kbd docutils literal notranslate">Control</kbd> key on Windows and Unix and |
| 364 | the <kbd class="kbd docutils literal notranslate">Command</kbd> key on Mac OSX.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 365 | <ul> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 366 | <li><p class="first"><kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes to the left; <kbd class="kbd docutils literal notranslate">Del</kbd> deletes to the right</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 367 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 368 | <li><p class="first"><kbd class="kbd docutils literal notranslate">C-Backspace</kbd> delete word left; <kbd class="kbd docutils literal notranslate">C-Del</kbd> delete word to the right</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 369 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 370 | <li><p class="first">Arrow keys and <kbd class="kbd docutils literal notranslate">Page Up</kbd>/<kbd class="kbd docutils literal notranslate">Page Down</kbd> to move around</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 371 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 372 | <li><p class="first"><kbd class="kbd docutils literal notranslate">C-LeftArrow</kbd> and <kbd class="kbd docutils literal notranslate">C-RightArrow</kbd> moves by words</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 373 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 374 | <li><p class="first"><kbd class="kbd docutils literal notranslate">Home</kbd>/<kbd class="kbd docutils literal notranslate">End</kbd> go to begin/end of line</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 375 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 376 | <li><p class="first"><kbd class="kbd docutils literal notranslate">C-Home</kbd>/<kbd class="kbd docutils literal notranslate">C-End</kbd> go to begin/end of file</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 377 | </li> |
| 378 | <li><p class="first">Some useful Emacs bindings are inherited from Tcl/Tk:</p> |
| 379 | <blockquote> |
| 380 | <div><ul class="simple"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 381 | <li><kbd class="kbd docutils literal notranslate">C-a</kbd> beginning of line</li> |
| 382 | <li><kbd class="kbd docutils literal notranslate">C-e</kbd> end of line</li> |
| 383 | <li><kbd class="kbd docutils literal notranslate">C-k</kbd> kill line (but doesn’t put it in clipboard)</li> |
| 384 | <li><kbd class="kbd docutils literal notranslate">C-l</kbd> center window around the insertion point</li> |
| 385 | <li><kbd class="kbd docutils literal notranslate">C-b</kbd> go backward one character without deleting (usually you can |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 386 | also use the cursor key for this)</li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 387 | <li><kbd class="kbd docutils literal notranslate">C-f</kbd> go forward one character without deleting (usually you can |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 388 | also use the cursor key for this)</li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 389 | <li><kbd class="kbd docutils literal notranslate">C-p</kbd> go up one line (usually you can also use the cursor key for |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 390 | this)</li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 391 | <li><kbd class="kbd docutils literal notranslate">C-d</kbd> delete next character</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 392 | </ul> |
| 393 | </div></blockquote> |
| 394 | </li> |
| 395 | </ul> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 396 | <p>Standard keybindings (like <kbd class="kbd docutils literal notranslate">C-c</kbd> to copy and <kbd class="kbd docutils literal notranslate">C-v</kbd> to paste) |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 397 | may work. Keybindings are selected in the Configure IDLE dialog.</p> |
| 398 | <div class="section" id="automatic-indentation"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 399 | <h3>26.5.2.1. Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 400 | <p>After a block-opening statement, the next line is indented by 4 spaces (in the |
| 401 | Python Shell window by one tab). After certain keywords (break, return etc.) |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 402 | the next line is dedented. In leading indentation, <kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes up |
| 403 | to 4 spaces if they are there. <kbd class="kbd docutils literal notranslate">Tab</kbd> inserts spaces (in the Python |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 404 | Shell window one tab), number depends on Indent width. Currently, tabs |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 405 | are restricted to four spaces due to Tcl/Tk limitations.</p> |
| 406 | <p>See also the indent/dedent region commands in the edit menu.</p> |
| 407 | </div> |
| 408 | <div class="section" id="completions"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 409 | <h3>26.5.2.2. Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 410 | <p>Completions are supplied for functions, classes, and attributes of classes, |
| 411 | both built-in and user-defined. Completions are also provided for |
| 412 | filenames.</p> |
| 413 | <p>The AutoCompleteWindow (ACW) will open after a predefined delay (default is |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 414 | two seconds) after a ‘.’ or (in a string) an os.sep is typed. If after one |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 415 | of those characters (plus zero or more other characters) a tab is typed |
| 416 | the ACW will open immediately if a possible continuation is found.</p> |
| 417 | <p>If there is only one possible completion for the characters entered, a |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 418 | <kbd class="kbd docutils literal notranslate">Tab</kbd> will supply that completion without opening the ACW.</p> |
| 419 | <p>‘Show Completions’ will force open a completions window, by default the |
| 420 | <kbd class="kbd docutils literal notranslate">C-space</kbd> will open a completions window. In an empty |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 421 | string, this will contain the files in the current directory. On a |
| 422 | blank line, it will contain the built-in and user-defined functions and |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 423 | classes in the current namespaces, plus any modules imported. If some |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 424 | characters have been entered, the ACW will attempt to be more specific.</p> |
| 425 | <p>If a string of characters is typed, the ACW selection will jump to the |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 426 | entry most closely matching those characters. Entering a <kbd class="kbd docutils literal notranslate">tab</kbd> will |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 427 | cause the longest non-ambiguous match to be entered in the Editor window or |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 428 | Shell. Two <kbd class="kbd docutils literal notranslate">tab</kbd> in a row will supply the current ACW selection, as |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 429 | will return or a double click. Cursor keys, Page Up/Down, mouse selection, |
| 430 | and the scroll wheel all operate on the ACW.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 431 | <p>“Hidden” attributes can be accessed by typing the beginning of hidden |
| 432 | name after a ‘.’, e.g. ‘_’. This allows access to modules with |
| 433 | <code class="docutils literal notranslate"><span class="pre">__all__</span></code> set, or to class-private attributes.</p> |
| 434 | <p>Completions and the ‘Expand Word’ facility can save a lot of typing!</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 435 | <p>Completions are currently limited to those in the namespaces. Names in |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 436 | an Editor window which are not via <code class="docutils literal notranslate"><span class="pre">__main__</span></code> and <a class="reference internal" href="sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a> will |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 437 | not be found. Run the module once with your imports to correct this situation. |
| 438 | Note that IDLE itself places quite a few modules in sys.modules, so |
| 439 | much can be found by default, e.g. the re module.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 440 | <p>If you don’t like the ACW popping up unbidden, simply make the delay |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 441 | longer or disable the extension.</p> |
| 442 | </div> |
| 443 | <div class="section" id="calltips"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 444 | <h3>26.5.2.3. Calltips<a class="headerlink" href="#calltips" title="Permalink to this headline">¶</a></h3> |
| 445 | <p>A calltip is shown when one types <kbd class="kbd docutils literal notranslate">(</kbd> after the name of an <em>accessible</em> |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 446 | function. A name expression may include dots and subscripts. A calltip |
| 447 | remains until it is clicked, the cursor is moved out of the argument area, |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 448 | or <kbd class="kbd docutils literal notranslate">)</kbd> is typed. When the cursor is in the argument part of a definition, |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 449 | the menu or shortcut display a calltip.</p> |
| 450 | <p>A calltip consists of the function signature and the first line of the |
| 451 | docstring. For builtins without an accessible signature, the calltip |
| 452 | consists of all lines up the fifth line or the first blank line. These |
| 453 | details may change.</p> |
| 454 | <p>The set of <em>accessible</em> functions depends on what modules have been imported |
| 455 | into the user process, including those imported by Idle itself, |
| 456 | and what definitions have been run, all since the last restart.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 457 | <p>For example, restart the Shell and enter <code class="docutils literal notranslate"><span class="pre">itertools.count(</span></code>. A calltip |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 458 | appears because Idle imports itertools into the user process for its own use. |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 459 | (This could change.) Enter <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> and nothing appears. Idle does |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 460 | not import turtle. The menu or shortcut do nothing either. Enter |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 461 | <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">turtle</span></code> and then <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> will work.</p> |
Terry Jan Reedy | 37f8135 | 2015-09-29 01:55:57 -0400 | [diff] [blame] | 462 | <p>In an editor, import statements have no effect until one runs the file. One |
| 463 | might want to run a file after writing the import statements at the top, |
| 464 | or immediately run an existing file before editing.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 465 | </div> |
| 466 | <div class="section" id="python-shell-window"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 467 | <h3>26.5.2.4. Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 468 | <ul> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 469 | <li><p class="first"><kbd class="kbd docutils literal notranslate">C-c</kbd> interrupts executing command</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 470 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 471 | <li><p class="first"><kbd class="kbd docutils literal notranslate">C-d</kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">>>></span></code> prompt</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 472 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 473 | <li><p class="first"><kbd class="kbd docutils literal notranslate">Alt-/</kbd> (Expand word) is also useful to reduce typing</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 474 | <p>Command history</p> |
| 475 | <ul class="simple"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 476 | <li><kbd class="kbd docutils literal notranslate">Alt-p</kbd> retrieves previous command matching what you have typed. On |
| 477 | OS X use <kbd class="kbd docutils literal notranslate">C-p</kbd>.</li> |
| 478 | <li><kbd class="kbd docutils literal notranslate">Alt-n</kbd> retrieves next. On OS X use <kbd class="kbd docutils literal notranslate">C-n</kbd>.</li> |
| 479 | <li><kbd class="kbd docutils literal notranslate">Return</kbd> while on any previous command retrieves that command</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 480 | </ul> |
| 481 | </li> |
| 482 | </ul> |
| 483 | </div> |
Terry Jan Reedy | ce021db | 2015-09-24 23:18:57 -0400 | [diff] [blame] | 484 | <div class="section" id="text-colors"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 485 | <h3>26.5.2.5. Text colors<a class="headerlink" href="#text-colors" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | ce021db | 2015-09-24 23:18:57 -0400 | [diff] [blame] | 486 | <p>Idle defaults to black on white text, but colors text with special meanings. |
| 487 | For the shell, these are shell output, shell error, user output, and |
| 488 | user error. For Python code, at the shell prompt or in an editor, these are |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 489 | keywords, builtin class and function names, names following <code class="docutils literal notranslate"><span class="pre">class</span></code> and |
| 490 | <code class="docutils literal notranslate"><span class="pre">def</span></code>, strings, and comments. For any text window, these are the cursor (when |
Terry Jan Reedy | ce021db | 2015-09-24 23:18:57 -0400 | [diff] [blame] | 491 | present), found text (when possible), and selected text.</p> |
| 492 | <p>Text coloring is done in the background, so uncolorized text is occasionally |
| 493 | visible. To change the color scheme, use the Configure IDLE dialog |
| 494 | Highlighting tab. The marking of debugger breakpoint lines in the editor and |
| 495 | text in popups and dialogs is not user-configurable.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 496 | </div> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 497 | </div> |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 498 | <div class="section" id="startup-and-code-execution"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 499 | <h2>26.5.3. Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2> |
| 500 | <p>Upon startup with the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option, IDLE will execute the file referenced by |
| 501 | the environment variables <span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>. |
| 502 | IDLE first checks for <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code>; if <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is present the file |
| 503 | referenced is run. If <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is not present, IDLE checks for |
| 504 | <code class="docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code>. Files referenced by these environment variables are |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 505 | convenient places to store functions that are used frequently from the IDLE |
| 506 | shell, or for executing import statements to import common modules.</p> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 507 | <p>In addition, <code class="docutils literal notranslate"><span class="pre">Tk</span></code> also loads a startup file if it is present. Note that the |
| 508 | Tk file is loaded unconditionally. This additional file is <code class="docutils literal notranslate"><span class="pre">.Idle.py</span></code> and is |
| 509 | looked for in the user’s home directory. Statements in this file will be |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 510 | executed in the Tk namespace, so this file is not useful for importing |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 511 | functions to be used from IDLE’s Python shell.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 512 | <div class="section" id="command-line-usage"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 513 | <h3>26.5.3.1. Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3> |
| 514 | <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ... |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 515 | |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 516 | -c command run command in the shell window |
| 517 | -d enable debugger and open shell window |
| 518 | -e open editor window |
Terry Jan Reedy | 3399e1e | 2016-08-30 16:58:01 -0400 | [diff] [blame] | 519 | -h print help message with legal combinations and exit |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 520 | -i open shell window |
| 521 | -r file run file in shell window |
| 522 | -s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 523 | -t title set title of shell window |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 524 | - run stdin in shell (- must be last option before args) |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 525 | </pre></div> |
| 526 | </div> |
| 527 | <p>If there are arguments:</p> |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 528 | <ul class="simple"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 529 | <li>If <code class="docutils literal notranslate"><span class="pre">-</span></code>, <code class="docutils literal notranslate"><span class="pre">-c</span></code>, or <code class="docutils literal notranslate"><span class="pre">r</span></code> is used, all arguments are placed in |
| 530 | <code class="docutils literal notranslate"><span class="pre">sys.argv[1:...]</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.argv[0]</span></code> is set to <code class="docutils literal notranslate"><span class="pre">''</span></code>, <code class="docutils literal notranslate"><span class="pre">'-c'</span></code>, |
| 531 | or <code class="docutils literal notranslate"><span class="pre">'-r'</span></code>. No editor window is opened, even if that is the default |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 532 | set in the Options dialog.</li> |
| 533 | <li>Otherwise, arguments are files opened for editing and |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 534 | <code class="docutils literal notranslate"><span class="pre">sys.argv</span></code> reflects the arguments passed to IDLE itself.</li> |
Terry Jan Reedy | 968e285 | 2015-09-23 03:52:23 -0400 | [diff] [blame] | 535 | </ul> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 536 | </div> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 537 | <div class="section" id="startup-failure"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 538 | <h3>26.5.3.2. Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this headline">¶</a></h3> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 539 | <p>IDLE uses a socket to communicate between the IDLE GUI process and the user |
| 540 | code execution process. A connection must be established whenever the Shell |
| 541 | starts or restarts. (The latter is indicated by a divider line that says |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 542 | ‘RESTART’). If the user process fails to connect to the GUI process, it |
| 543 | displays a <code class="docutils literal notranslate"><span class="pre">Tk</span></code> error box with a ‘cannot connect’ message that directs the |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 544 | user here. It then exits.</p> |
| 545 | <p>A common cause of failure is a user-written file with the same name as a |
| 546 | standard library module, such as <em>random.py</em> and <em>tkinter.py</em>. When such a |
| 547 | file is located in the same directory as a file that is about to be run, |
| 548 | IDLE cannot import the stdlib file. The current fix is to rename the |
| 549 | user file.</p> |
| 550 | <p>Though less common than in the past, an antivirus or firewall program may |
| 551 | stop the connection. If the program cannot be taught to allow the |
| 552 | connection, then it must be turned off for IDLE to work. It is safe to |
| 553 | allow this internal connection because no data is visible on external |
| 554 | ports. A similar problem is a network mis-configuration that blocks |
| 555 | connections.</p> |
| 556 | <p>Python installation issues occasionally stop IDLE: multiple versions can |
| 557 | clash, or a single installation might need admin access. If one undo the |
| 558 | clash, or cannot or does not want to run as admin, it might be easiest to |
| 559 | completely remove Python and start over.</p> |
| 560 | <p>A zombie pythonw.exe process could be a problem. On Windows, use Task |
| 561 | Manager to detect and stop one. Sometimes a restart initiated by a program |
| 562 | crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing |
| 563 | the error box or Restart Shell on the Shell menu may fix a temporary problem.</p> |
| 564 | <p>When IDLE first starts, it attempts to read user configuration files in |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 565 | ~/.idlerc/ (~ is one’s home directory). If there is a problem, an error |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 566 | message should be displayed. Leaving aside random disk glitches, this can |
| 567 | be prevented by never editing the files by hand, using the configuration |
| 568 | dialog, under Options, instead Options. Once it happens, the solution may |
| 569 | be to delete one or more of the configuration files.</p> |
| 570 | <p>If IDLE quits with no message, and it was not started from a console, try |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 571 | starting from a console (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">idlelib)</span></code> and see if a message appears.</p> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 572 | </div> |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 573 | <div class="section" id="idle-console-differences"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 574 | <h3>26.5.3.3. IDLE-console differences<a class="headerlink" href="#idle-console-differences" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 575 | <p>With rare exceptions, the result of executing Python code with IDLE is |
| 576 | intended to be the same as executing the same code in a console window. |
| 577 | However, the different interface and operation occasionally affect |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 578 | visible results. For instance, <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> starts with more entries.</p> |
| 579 | <p>IDLE also replaces <code class="docutils literal notranslate"><span class="pre">sys.stdin</span></code>, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code>, and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> with |
Terry Jan Reedy | 929d7f8 | 2016-05-02 18:30:02 -0400 | [diff] [blame] | 580 | objects that get input from and send output to the Shell window. |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 581 | When Shell has the focus, it controls the keyboard and screen. This is |
| 582 | normally transparent, but functions that directly access the keyboard |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 583 | and screen will not work. If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>, |
| 584 | IDLE’s changes are lost and things like <code class="docutils literal notranslate"><span class="pre">input</span></code>, <code class="docutils literal notranslate"><span class="pre">raw_input</span></code>, and |
| 585 | <code class="docutils literal notranslate"><span class="pre">print</span></code> will not work correctly.</p> |
| 586 | <p>With IDLE’s Shell, one enters, edits, and recalls complete statements. |
Terry Jan Reedy | 1f8cc33 | 2016-08-25 01:22:30 -0400 | [diff] [blame] | 587 | Some consoles only work with a single physical line at a time. IDLE uses |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 588 | <code class="docutils literal notranslate"><span class="pre">exec</span></code> to run each statement. As a result, <code class="docutils literal notranslate"><span class="pre">'__builtins__'</span></code> is always |
Terry Jan Reedy | 1f8cc33 | 2016-08-25 01:22:30 -0400 | [diff] [blame] | 589 | defined for each statement.</p> |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 590 | </div> |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 591 | <div class="section" id="developing-tkinter-applications"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 592 | <h3>26.5.3.4. Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 593 | <p>IDLE is intentionally different from standard Python in order to |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 594 | facilitate development of tkinter programs. Enter <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">tkinter</span> <span class="pre">as</span> <span class="pre">tk;</span> |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 595 | <span class="pre">root</span> <span class="pre">=</span> <span class="pre">tk.Tk()</span></code> in standard Python and nothing appears. Enter the same |
| 596 | in IDLE and a tk window appears. In standard Python, one must also enter |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 597 | <code class="docutils literal notranslate"><span class="pre">root.update()</span></code> to see the window. IDLE does the equivalent in the |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 598 | background, about 20 times a second, which is about every 50 milleseconds. |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 599 | Next enter <code class="docutils literal notranslate"><span class="pre">b</span> <span class="pre">=</span> <span class="pre">tk.Button(root,</span> <span class="pre">text='button');</span> <span class="pre">b.pack()</span></code>. Again, |
| 600 | nothing visibly changes in standard Python until one enters <code class="docutils literal notranslate"><span class="pre">root.update()</span></code>.</p> |
| 601 | <p>Most tkinter programs run <code class="docutils literal notranslate"><span class="pre">root.mainloop()</span></code>, which usually does not |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 602 | return until the tk app is destroyed. If the program is run with |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 603 | <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span></code> or from an IDLE editor, a <code class="docutils literal notranslate"><span class="pre">>>></span></code> shell prompt does not |
| 604 | appear until <code class="docutils literal notranslate"><span class="pre">mainloop()</span></code> returns, at which time there is nothing left |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 605 | to interact with.</p> |
| 606 | <p>When running a tkinter program from an IDLE editor, one can comment out |
| 607 | the mainloop call. One then gets a shell prompt immediately and can |
| 608 | interact with the live application. One just has to remember to |
| 609 | re-enable the mainloop call when running in standard Python.</p> |
| 610 | </div> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 611 | <div class="section" id="running-without-a-subprocess"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 612 | <h3>26.5.3.5. Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 0053c47 | 2015-09-24 03:09:43 -0400 | [diff] [blame] | 613 | <p>By default, IDLE executes user code in a separate subprocess via a socket, |
Terry Jan Reedy | 6e10ec5 | 2015-09-23 20:00:33 -0400 | [diff] [blame] | 614 | which uses the internal loopback interface. This connection is not |
| 615 | externally visible and no data is sent to or received from the Internet. |
| 616 | If firewall software complains anyway, you can ignore it.</p> |
| 617 | <p>If the attempt to make the socket connection fails, Idle will notify you. |
| 618 | Such failures are sometimes transient, but if persistent, the problem |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 619 | may be either a firewall blocking the connection or misconfiguration of |
Terry Jan Reedy | 6e10ec5 | 2015-09-23 20:00:33 -0400 | [diff] [blame] | 620 | a particular system. Until the problem is fixed, one can run Idle with |
| 621 | the -n command line switch.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 622 | <p>If IDLE is started with the -n command line switch it will run in a |
| 623 | single process and will not create the subprocess which runs the RPC |
| 624 | Python execution server. This can be useful if Python cannot create |
| 625 | the subprocess or the RPC socket interface on your platform. However, |
| 626 | in this mode user code is not isolated from IDLE itself. Also, the |
| 627 | environment is not restarted when Run/Run Module (F5) is selected. If |
| 628 | your code has been modified, you must reload() the affected modules and |
| 629 | re-import any specific items (e.g. from foo import baz) if the changes |
| 630 | are to take effect. For these reasons, it is preferable to run IDLE |
| 631 | with the default subprocess if at all possible.</p> |
| 632 | <div class="deprecated"> |
| 633 | <p><span class="versionmodified">Deprecated since version 3.4.</span></p> |
| 634 | </div> |
| 635 | </div> |
| 636 | </div> |
| 637 | <div class="section" id="help-and-preferences"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 638 | <h2>26.5.4. Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 639 | <div class="section" id="additional-help-sources"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 640 | <h3>26.5.4.1. Additional help sources<a class="headerlink" href="#additional-help-sources" title="Permalink to this headline">¶</a></h3> |
| 641 | <p>IDLE includes a help menu entry called “Python Docs” that will open the |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 642 | extensive sources of help, including tutorials, available at docs.python.org. |
| 643 | Selected URLs can be added or removed from the help menu at any time using the |
| 644 | Configure IDLE dialog. See the IDLE help option in the help menu of IDLE for |
| 645 | more information.</p> |
| 646 | </div> |
| 647 | <div class="section" id="setting-preferences"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 648 | <h3>26.5.4.2. Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 649 | <p>The font preferences, highlighting, keys, and general preferences can be |
| 650 | changed via Configure IDLE on the Option menu. Keys can be user defined; |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 651 | IDLE ships with four built-in key sets. In addition, a user can create a |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 652 | custom key set in the Configure IDLE dialog under the keys tab.</p> |
| 653 | </div> |
| 654 | <div class="section" id="extensions"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 655 | <h3>26.5.4.3. Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 656 | <p>IDLE contains an extension facility. Preferences for extensions can be |
Terry Jan Reedy | adb4cd2 | 2017-09-12 07:45:15 -0400 | [diff] [blame] | 657 | changed with the Extensions tab of the preferences dialog. See the |
| 658 | beginning of config-extensions.def in the idlelib directory for further |
| 659 | information. The only current default extension is zzdummy, an example |
Terry Jan Reedy | 98758bc | 2017-09-12 09:05:16 -0400 | [diff] [blame] | 660 | also used for testing.</p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 661 | </div> |
| 662 | </div> |
| 663 | </div> |
| 664 | |
| 665 | |
| 666 | </div> |
| 667 | </div> |
| 668 | </div> |
Terry Jan Reedy | f8cd02d | 2016-03-01 00:29:57 -0500 | [diff] [blame] | 669 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 670 | <div class="sphinxsidebarwrapper"> |
| 671 | <h3><a href="../contents.html">Table Of Contents</a></h3> |
| 672 | <ul> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 673 | <li><a class="reference internal" href="#">26.5. IDLE</a><ul> |
| 674 | <li><a class="reference internal" href="#menus">26.5.1. Menus</a><ul> |
| 675 | <li><a class="reference internal" href="#file-menu-shell-and-editor">26.5.1.1. File menu (Shell and Editor)</a></li> |
| 676 | <li><a class="reference internal" href="#edit-menu-shell-and-editor">26.5.1.2. Edit menu (Shell and Editor)</a></li> |
| 677 | <li><a class="reference internal" href="#format-menu-editor-window-only">26.5.1.3. Format menu (Editor window only)</a></li> |
| 678 | <li><a class="reference internal" href="#run-menu-editor-window-only">26.5.1.4. Run menu (Editor window only)</a></li> |
| 679 | <li><a class="reference internal" href="#shell-menu-shell-window-only">26.5.1.5. Shell menu (Shell window only)</a></li> |
| 680 | <li><a class="reference internal" href="#debug-menu-shell-window-only">26.5.1.6. Debug menu (Shell window only)</a></li> |
| 681 | <li><a class="reference internal" href="#options-menu-shell-and-editor">26.5.1.7. Options menu (Shell and Editor)</a></li> |
| 682 | <li><a class="reference internal" href="#window-menu-shell-and-editor">26.5.1.8. Window menu (Shell and Editor)</a></li> |
| 683 | <li><a class="reference internal" href="#help-menu-shell-and-editor">26.5.1.9. Help menu (Shell and Editor)</a></li> |
| 684 | <li><a class="reference internal" href="#context-menus">26.5.1.10. Context Menus</a></li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 685 | </ul> |
| 686 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 687 | <li><a class="reference internal" href="#editing-and-navigation">26.5.2. Editing and navigation</a><ul> |
| 688 | <li><a class="reference internal" href="#automatic-indentation">26.5.2.1. Automatic indentation</a></li> |
| 689 | <li><a class="reference internal" href="#completions">26.5.2.2. Completions</a></li> |
| 690 | <li><a class="reference internal" href="#calltips">26.5.2.3. Calltips</a></li> |
| 691 | <li><a class="reference internal" href="#python-shell-window">26.5.2.4. Python Shell window</a></li> |
| 692 | <li><a class="reference internal" href="#text-colors">26.5.2.5. Text colors</a></li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 693 | </ul> |
| 694 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 695 | <li><a class="reference internal" href="#startup-and-code-execution">26.5.3. Startup and code execution</a><ul> |
| 696 | <li><a class="reference internal" href="#command-line-usage">26.5.3.1. Command line usage</a></li> |
| 697 | <li><a class="reference internal" href="#startup-failure">26.5.3.2. Startup failure</a></li> |
| 698 | <li><a class="reference internal" href="#idle-console-differences">26.5.3.3. IDLE-console differences</a></li> |
| 699 | <li><a class="reference internal" href="#developing-tkinter-applications">26.5.3.4. Developing tkinter applications</a></li> |
| 700 | <li><a class="reference internal" href="#running-without-a-subprocess">26.5.3.5. Running without a subprocess</a></li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 701 | </ul> |
| 702 | </li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 703 | <li><a class="reference internal" href="#help-and-preferences">26.5.4. Help and preferences</a><ul> |
| 704 | <li><a class="reference internal" href="#additional-help-sources">26.5.4.1. Additional help sources</a></li> |
| 705 | <li><a class="reference internal" href="#setting-preferences">26.5.4.2. Setting preferences</a></li> |
| 706 | <li><a class="reference internal" href="#extensions">26.5.4.3. Extensions</a></li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 707 | </ul> |
| 708 | </li> |
| 709 | </ul> |
| 710 | </li> |
| 711 | </ul> |
| 712 | |
| 713 | <h4>Previous topic</h4> |
| 714 | <p class="topless"><a href="tkinter.scrolledtext.html" |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 715 | title="previous chapter">26.4. <code class="docutils literal notranslate"><span class="pre">tkinter.scrolledtext</span></code> — Scrolled Text Widget</a></p> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 716 | <h4>Next topic</h4> |
| 717 | <p class="topless"><a href="othergui.html" |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 718 | title="next chapter">26.6. Other Graphical User Interface Packages</a></p> |
Terry Jan Reedy | 4b73676 | 2016-09-12 01:50:03 -0400 | [diff] [blame] | 719 | <div role="note" aria-label="source link"> |
| 720 | <h3>This Page</h3> |
| 721 | <ul class="this-page-menu"> |
| 722 | <li><a href="../bugs.html">Report a Bug</a></li> |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 723 | <li> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 724 | <a href="https://github.com/python/cpython/blob/master/Doc/library/idle.rst" |
terryjreedy | 188aedf | 2017-06-13 21:32:16 -0400 | [diff] [blame] | 725 | rel="nofollow">Show Source |
| 726 | </a> |
| 727 | </li> |
Terry Jan Reedy | 4b73676 | 2016-09-12 01:50:03 -0400 | [diff] [blame] | 728 | </ul> |
| 729 | </div> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 730 | </div> |
| 731 | </div> |
| 732 | <div class="clearer"></div> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 733 | </div> |
Terry Jan Reedy | f8cd02d | 2016-03-01 00:29:57 -0500 | [diff] [blame] | 734 | <div class="related" role="navigation" aria-label="related navigation"> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 735 | <h3>Navigation</h3> |
| 736 | <ul> |
| 737 | <li class="right" style="margin-right: 10px"> |
| 738 | <a href="../genindex.html" title="General Index" |
| 739 | >index</a></li> |
| 740 | <li class="right" > |
| 741 | <a href="../py-modindex.html" title="Python Module Index" |
| 742 | >modules</a> |</li> |
| 743 | <li class="right" > |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 744 | <a href="othergui.html" title="26.6. Other Graphical User Interface Packages" |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 745 | >next</a> |</li> |
| 746 | <li class="right" > |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 747 | <a href="tkinter.scrolledtext.html" title="26.4. tkinter.scrolledtext — Scrolled Text Widget" |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 748 | >previous</a> |</li> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 749 | |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 750 | <li><img src="../_static/py.png" alt="" |
| 751 | style="vertical-align: middle; margin-top: -1px"/></li> |
| 752 | <li><a href="https://www.python.org/">Python</a> »</li> |
| 753 | |
| 754 | |
| 755 | <li> |
| 756 | <a href="../index.html">3.8.0a0 Documentation</a> » |
| 757 | </li> |
| 758 | |
| 759 | <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li> |
| 760 | <li class="nav-item nav-item-2"><a href="tk.html" >26. Graphical User Interfaces with Tk</a> »</li> |
Terry Jan Reedy | 4b73676 | 2016-09-12 01:50:03 -0400 | [diff] [blame] | 761 | <li class="right"> |
| 762 | |
| 763 | |
| 764 | <div class="inline-search" style="display: none" role="search"> |
| 765 | <form class="inline-search" action="../search.html" method="get"> |
| 766 | <input placeholder="Quick search" type="text" name="q" /> |
| 767 | <input type="submit" value="Go" /> |
| 768 | <input type="hidden" name="check_keywords" value="yes" /> |
| 769 | <input type="hidden" name="area" value="default" /> |
| 770 | </form> |
| 771 | </div> |
| 772 | <script type="text/javascript">$('.inline-search').show(0);</script> |
| 773 | | |
| 774 | </li> |
| 775 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 776 | </ul> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 777 | </div> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 778 | <div class="footer"> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 779 | © <a href="../copyright.html">Copyright</a> 2001-2018, Python Software Foundation. |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 780 | <br /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 781 | |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 782 | The Python Software Foundation is a non-profit corporation. |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 783 | <a href="https://www.python.org/psf/donations/">Please donate.</a> |
| 784 | <br /> |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 785 | <br /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 786 | |
| 787 | Last updated on Jun 10, 2018. |
| 788 | <a href="https://docs.python.org/3/bugs.html">Found a bug</a>? |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 789 | <br /> |
Terry Jan Reedy | af4b013 | 2018-06-10 15:48:41 -0400 | [diff] [blame^] | 790 | |
| 791 | Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.7.4. |
Terry Jan Reedy | 5d46ab1 | 2015-09-20 19:57:13 -0400 | [diff] [blame] | 792 | </div> |
| 793 | |
| 794 | </body> |
Terry Jan Reedy | 963a38b | 2015-09-20 20:03:01 -0400 | [diff] [blame] | 795 | </html> |