mirror of
https://github.com/python/cpython.git
synced 2025-09-30 20:31:52 +00:00
Merge with 3.5
This commit is contained in:
commit
1b90af21de
6 changed files with 927 additions and 12 deletions
|
@ -21,6 +21,7 @@ from idlelib import PyParse
|
||||||
from idlelib.configHandler import idleConf
|
from idlelib.configHandler import idleConf
|
||||||
from idlelib import aboutDialog, textView, configDialog
|
from idlelib import aboutDialog, textView, configDialog
|
||||||
from idlelib import macosxSupport
|
from idlelib import macosxSupport
|
||||||
|
from idlelib import help
|
||||||
|
|
||||||
# The default tab setting for a Text widget, in average-width characters.
|
# The default tab setting for a Text widget, in average-width characters.
|
||||||
TK_TABWIDTH_DEFAULT = 8
|
TK_TABWIDTH_DEFAULT = 8
|
||||||
|
@ -42,6 +43,11 @@ def _sphinx_version():
|
||||||
class HelpDialog(object):
|
class HelpDialog(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
import warnings as w
|
||||||
|
w.warn("EditorWindow.HelpDialog is no longer used by Idle.\n"
|
||||||
|
"It will be removed in 3.6 or later.\n"
|
||||||
|
"It has been replaced by private help.HelpWindow\n",
|
||||||
|
DeprecationWarning, stacklevel=2)
|
||||||
self.parent = None # parent of help window
|
self.parent = None # parent of help window
|
||||||
self.dlg = None # the help window iteself
|
self.dlg = None # the help window iteself
|
||||||
|
|
||||||
|
@ -539,11 +545,13 @@ class EditorWindow(object):
|
||||||
configDialog.ConfigExtensionsDialog(self.top)
|
configDialog.ConfigExtensionsDialog(self.top)
|
||||||
|
|
||||||
def help_dialog(self, event=None):
|
def help_dialog(self, event=None):
|
||||||
|
"Handle help doc event."
|
||||||
|
# edit maxosxSupport.overrideRootMenu.help_dialog to match
|
||||||
if self.root:
|
if self.root:
|
||||||
parent = self.root
|
parent = self.root
|
||||||
else:
|
else:
|
||||||
parent = self.top
|
parent = self.top
|
||||||
helpDialog.display(parent, near=self.top)
|
help.show_idlehelp(parent)
|
||||||
|
|
||||||
def python_docs(self, event=None):
|
def python_docs(self, event=None):
|
||||||
if sys.platform[:3] == 'win':
|
if sys.platform[:3] == 'win':
|
||||||
|
@ -1716,4 +1724,4 @@ def _editor_window(parent): # htest #
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from idlelib.idle_test.htest import run
|
from idlelib.idle_test.htest import run
|
||||||
run(_help_dialog, _editor_window)
|
run(_editor_window)
|
||||||
|
|
233
Lib/idlelib/help.py
Normal file
233
Lib/idlelib/help.py
Normal file
|
@ -0,0 +1,233 @@
|
||||||
|
"""
|
||||||
|
help.py implements the Idle help menu and is subject to change.
|
||||||
|
|
||||||
|
The contents are subject to revision at any time, without notice.
|
||||||
|
|
||||||
|
Help => About IDLE: diplay About Idle dialog
|
||||||
|
|
||||||
|
<to be moved here from aboutDialog.py>
|
||||||
|
|
||||||
|
Help => IDLE Help: display idle.html with proper formatting
|
||||||
|
|
||||||
|
HelpParser - Parses idle.html generated from idle.rst by Sphinx
|
||||||
|
and renders to tk Text.
|
||||||
|
|
||||||
|
HelpText - Displays formatted idle.html.
|
||||||
|
|
||||||
|
HelpFrame - Contains text, scrollbar, and table-of-contents.
|
||||||
|
(This will be needed for display in a future tabbed window.)
|
||||||
|
|
||||||
|
HelpWindow - Display idleframe in a standalone window.
|
||||||
|
|
||||||
|
show_idlehelp - Create HelpWindow. Called in EditorWindow.help_dialog.
|
||||||
|
"""
|
||||||
|
from html.parser import HTMLParser
|
||||||
|
from os.path import abspath, dirname, isdir, isfile, join
|
||||||
|
from tkinter import Tk, Toplevel, Frame, Text, Scrollbar, Menu, Menubutton
|
||||||
|
from tkinter import font as tkfont
|
||||||
|
|
||||||
|
use_ttk = False # until available to import
|
||||||
|
if use_ttk:
|
||||||
|
from tkinter.ttk import Menubutton
|
||||||
|
|
||||||
|
## About IDLE ##
|
||||||
|
|
||||||
|
|
||||||
|
## IDLE Help ##
|
||||||
|
|
||||||
|
class HelpParser(HTMLParser):
|
||||||
|
"""Render idle.html generated by Sphinx from idle.rst.
|
||||||
|
|
||||||
|
The overridden handle_xyz methods handle a subset of html tags.
|
||||||
|
The supplied text should have the needed tag configurations.
|
||||||
|
The behavior for unsupported tags, such as table, is undefined.
|
||||||
|
"""
|
||||||
|
def __init__(self, text):
|
||||||
|
HTMLParser.__init__(self, convert_charrefs=True)
|
||||||
|
self.text = text # text widget we're rendering into
|
||||||
|
self.tags = '' # current text tags to apply
|
||||||
|
self.show = False # used so we exclude page navigation
|
||||||
|
self.hdrlink = False # used so we don't show header links
|
||||||
|
self.level = 0 # indentation level
|
||||||
|
self.pre = False # displaying preformatted text
|
||||||
|
self.hprefix = '' # strip e.g. '25.5' from headings
|
||||||
|
self.nested_dl = False # if we're in a nested <dl>
|
||||||
|
self.simplelist = False # simple list (no double spacing)
|
||||||
|
self.tocid = 1 # id for table of contents entries
|
||||||
|
self.contents = [] # map toc ids to section titles
|
||||||
|
self.data = '' # to record data within header tags for toc
|
||||||
|
|
||||||
|
def indent(self, amt=1):
|
||||||
|
self.level += amt
|
||||||
|
self.tags = '' if self.level == 0 else 'l'+str(self.level)
|
||||||
|
|
||||||
|
def handle_starttag(self, tag, attrs):
|
||||||
|
"Handle starttags in idle.html."
|
||||||
|
class_ = ''
|
||||||
|
for a, v in attrs:
|
||||||
|
if a == 'class':
|
||||||
|
class_ = v
|
||||||
|
s = ''
|
||||||
|
if tag == 'div' and class_ == 'section':
|
||||||
|
self.show = True # start of main content
|
||||||
|
elif tag == 'div' and class_ == 'sphinxsidebar':
|
||||||
|
self.show = False # end of main content
|
||||||
|
elif tag == 'p' and class_ != 'first':
|
||||||
|
s = '\n\n'
|
||||||
|
elif tag == 'span' and class_ == 'pre':
|
||||||
|
self.tags = 'pre'
|
||||||
|
elif tag == 'span' and class_ == 'versionmodified':
|
||||||
|
self.tags = 'em'
|
||||||
|
elif tag == 'em':
|
||||||
|
self.tags = 'em'
|
||||||
|
elif tag in ['ul', 'ol']:
|
||||||
|
if class_.find('simple') != -1:
|
||||||
|
s = '\n'
|
||||||
|
self.simplelist = True
|
||||||
|
else:
|
||||||
|
self.simplelist = False
|
||||||
|
self.indent()
|
||||||
|
elif tag == 'dl':
|
||||||
|
if self.level > 0:
|
||||||
|
self.nested_dl = True
|
||||||
|
elif tag == 'li':
|
||||||
|
s = '\n* ' if self.simplelist else '\n\n* '
|
||||||
|
elif tag == 'dt':
|
||||||
|
s = '\n\n' if not self.nested_dl else '\n' # avoid extra line
|
||||||
|
self.nested_dl = False
|
||||||
|
elif tag == 'dd':
|
||||||
|
self.indent()
|
||||||
|
s = '\n'
|
||||||
|
elif tag == 'pre':
|
||||||
|
self.pre = True
|
||||||
|
if self.show:
|
||||||
|
self.text.insert('end', '\n\n')
|
||||||
|
self.tags = 'preblock'
|
||||||
|
elif tag == 'a' and class_ == 'headerlink':
|
||||||
|
self.hdrlink = True
|
||||||
|
elif tag == 'h1':
|
||||||
|
self.text.mark_set('toc'+str(self.tocid),
|
||||||
|
self.text.index('end-1line'))
|
||||||
|
self.tags = tag
|
||||||
|
elif tag in ['h2', 'h3']:
|
||||||
|
if self.show:
|
||||||
|
self.data = ''
|
||||||
|
self.text.mark_set('toc'+str(self.tocid),
|
||||||
|
self.text.index('end-1line'))
|
||||||
|
self.text.insert('end', '\n\n')
|
||||||
|
self.tags = tag
|
||||||
|
if self.show:
|
||||||
|
self.text.insert('end', s, self.tags)
|
||||||
|
|
||||||
|
def handle_endtag(self, tag):
|
||||||
|
"Handle endtags in idle.html."
|
||||||
|
if tag in ['h1', 'h2', 'h3', 'span', 'em']:
|
||||||
|
self.indent(0) # clear tag, reset indent
|
||||||
|
if self.show and tag in ['h1', 'h2', 'h3']:
|
||||||
|
title = self.data
|
||||||
|
self.contents.append(('toc'+str(self.tocid), title))
|
||||||
|
self.tocid += 1
|
||||||
|
elif tag == 'a':
|
||||||
|
self.hdrlink = False
|
||||||
|
elif tag == 'pre':
|
||||||
|
self.pre = False
|
||||||
|
self.tags = ''
|
||||||
|
elif tag in ['ul', 'dd', 'ol']:
|
||||||
|
self.indent(amt=-1)
|
||||||
|
|
||||||
|
def handle_data(self, data):
|
||||||
|
"Handle date segments in idle.html."
|
||||||
|
if self.show and not self.hdrlink:
|
||||||
|
d = data if self.pre else data.replace('\n', ' ')
|
||||||
|
if self.tags == 'h1':
|
||||||
|
self.hprefix = d[0:d.index(' ')]
|
||||||
|
if self.tags in ['h1', 'h2', 'h3'] and self.hprefix != '':
|
||||||
|
if d[0:len(self.hprefix)] == self.hprefix:
|
||||||
|
d = d[len(self.hprefix):].strip()
|
||||||
|
self.data += d
|
||||||
|
self.text.insert('end', d, self.tags)
|
||||||
|
|
||||||
|
|
||||||
|
class HelpText(Text):
|
||||||
|
"Display idle.html."
|
||||||
|
def __init__(self, parent, filename):
|
||||||
|
"Configure tags and feed file to parser."
|
||||||
|
Text.__init__(self, parent, wrap='word', highlightthickness=0,
|
||||||
|
padx=5, borderwidth=0)
|
||||||
|
|
||||||
|
normalfont = self.findfont(['TkDefaultFont', 'arial', 'helvetica'])
|
||||||
|
fixedfont = self.findfont(['TkFixedFont', 'monaco', 'courier'])
|
||||||
|
self['font'] = (normalfont, 12)
|
||||||
|
self.tag_configure('em', font=(normalfont, 12, 'italic'))
|
||||||
|
self.tag_configure('h1', font=(normalfont, 20, 'bold'))
|
||||||
|
self.tag_configure('h2', font=(normalfont, 18, 'bold'))
|
||||||
|
self.tag_configure('h3', font=(normalfont, 15, 'bold'))
|
||||||
|
self.tag_configure('pre', font=(fixedfont, 12))
|
||||||
|
self.tag_configure('preblock', font=(fixedfont, 10), lmargin1=25,
|
||||||
|
borderwidth=1, relief='solid', background='#eeffcc')
|
||||||
|
self.tag_configure('l1', lmargin1=25, lmargin2=25)
|
||||||
|
self.tag_configure('l2', lmargin1=50, lmargin2=50)
|
||||||
|
self.tag_configure('l3', lmargin1=75, lmargin2=75)
|
||||||
|
self.tag_configure('l4', lmargin1=100, lmargin2=100)
|
||||||
|
|
||||||
|
self.parser = HelpParser(self)
|
||||||
|
with open(filename, encoding='utf-8') as f:
|
||||||
|
contents = f.read()
|
||||||
|
self.parser.feed(contents)
|
||||||
|
self['state'] = 'disabled'
|
||||||
|
|
||||||
|
def findfont(self, names):
|
||||||
|
"Return name of first font family derived from names."
|
||||||
|
for name in names:
|
||||||
|
if name.lower() in (x.lower() for x in tkfont.names(root=self)):
|
||||||
|
font = tkfont.Font(name=name, exists=True, root=self)
|
||||||
|
return font.actual()['family']
|
||||||
|
elif name.lower() in (x.lower()
|
||||||
|
for x in tkfont.families(root=self)):
|
||||||
|
return name
|
||||||
|
|
||||||
|
|
||||||
|
class HelpFrame(Frame):
|
||||||
|
def __init__(self, parent, filename):
|
||||||
|
Frame.__init__(self, parent)
|
||||||
|
text = HelpText(self, filename)
|
||||||
|
self['background'] = text['background']
|
||||||
|
scroll = Scrollbar(self, command=text.yview)
|
||||||
|
text['yscrollcommand'] = scroll.set
|
||||||
|
text.grid(column=1, row=0, sticky='nsew')
|
||||||
|
scroll.grid(column=2, row=0, sticky='ns')
|
||||||
|
self.grid_columnconfigure(1, weight=1)
|
||||||
|
self.grid_rowconfigure(0, weight=1)
|
||||||
|
toc = self.contents_widget(text)
|
||||||
|
toc.grid(column=0, row=0, sticky='nw')
|
||||||
|
|
||||||
|
def contents_widget(self, text):
|
||||||
|
toc = Menubutton(self, text='TOC')
|
||||||
|
drop = Menu(toc, tearoff=False)
|
||||||
|
for tag, lbl in text.parser.contents:
|
||||||
|
drop.add_command(label=lbl, command=lambda mark=tag:text.see(mark))
|
||||||
|
toc['menu'] = drop
|
||||||
|
return toc
|
||||||
|
|
||||||
|
|
||||||
|
class HelpWindow(Toplevel):
|
||||||
|
|
||||||
|
def __init__(self, parent, filename, title):
|
||||||
|
Toplevel.__init__(self, parent)
|
||||||
|
self.wm_title(title)
|
||||||
|
self.protocol("WM_DELETE_WINDOW", self.destroy)
|
||||||
|
HelpFrame(self, filename).grid(column=0, row=0, sticky='nsew')
|
||||||
|
self.grid_columnconfigure(0, weight=1)
|
||||||
|
self.grid_rowconfigure(0, weight=1)
|
||||||
|
|
||||||
|
|
||||||
|
def show_idlehelp(parent):
|
||||||
|
filename = join(abspath(dirname(__file__)), 'idle.html')
|
||||||
|
if not isfile(filename):
|
||||||
|
dirpath = join(abspath(dirname(dirname(dirname(__file__)))),
|
||||||
|
'Doc', 'build', 'html', 'library')
|
||||||
|
HelpWindow(parent, filename, 'IDLE Help')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from idlelib.idle_test.htest import run
|
||||||
|
run(show_idlehelp)
|
|
@ -1,3 +1,7 @@
|
||||||
|
This file, idlelib/help.txt is out-of-date and no longer used by Idle.
|
||||||
|
It is deprecated and will be removed in the future, possibly in 3.6
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
[See the end of this file for ** TIPS ** on using IDLE !!]
|
[See the end of this file for ** TIPS ** on using IDLE !!]
|
||||||
|
|
||||||
IDLE is the Python IDE built with the tkinter GUI toolkit.
|
IDLE is the Python IDE built with the tkinter GUI toolkit.
|
||||||
|
|
671
Lib/idlelib/idle.html
Normal file
671
Lib/idlelib/idle.html
Normal file
|
@ -0,0 +1,671 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
|
||||||
|
<title>25.5. IDLE — Python 3.4.3 documentation</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var DOCUMENTATION_OPTIONS = {
|
||||||
|
URL_ROOT: '../',
|
||||||
|
VERSION: '3.4.3',
|
||||||
|
COLLAPSE_INDEX: false,
|
||||||
|
FILE_SUFFIX: '.html',
|
||||||
|
HAS_SOURCE: true
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/sidebar.js"></script>
|
||||||
|
<link rel="search" type="application/opensearchdescription+xml"
|
||||||
|
title="Search within Python 3.4.3 documentation"
|
||||||
|
href="../_static/opensearch.xml"/>
|
||||||
|
<link rel="author" title="About these documents" href="../about.html" />
|
||||||
|
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||||||
|
<link rel="top" title="Python 3.4.3 documentation" href="../index.html" />
|
||||||
|
<link rel="up" title="25. Graphical User Interfaces with Tk" href="tk.html" />
|
||||||
|
<link rel="next" title="25.6. Other Graphical User Interface Packages" href="othergui.html" />
|
||||||
|
<link rel="prev" title="25.4. tkinter.scrolledtext — Scrolled Text Widget" href="tkinter.scrolledtext.html" />
|
||||||
|
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
|
||||||
|
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="related">
|
||||||
|
<h3>Navigation</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="right" style="margin-right: 10px">
|
||||||
|
<a href="../genindex.html" title="General Index"
|
||||||
|
accesskey="I">index</a></li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="../py-modindex.html" title="Python Module Index"
|
||||||
|
>modules</a> |</li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="othergui.html" title="25.6. Other Graphical User Interface Packages"
|
||||||
|
accesskey="N">next</a> |</li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="tkinter.scrolledtext.html" title="25.4. tkinter.scrolledtext — Scrolled Text Widget"
|
||||||
|
accesskey="P">previous</a> |</li>
|
||||||
|
<li><img src="../_static/py.png" alt=""
|
||||||
|
style="vertical-align: middle; margin-top: -1px"/></li>
|
||||||
|
<li><a href="https://www.python.org/">Python</a> »</li>
|
||||||
|
<li>
|
||||||
|
<a href="../index.html">3.4.3 Documentation</a> »
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><a href="index.html" >The Python Standard Library</a> »</li>
|
||||||
|
<li><a href="tk.html" accesskey="U">25. Graphical User Interfaces with Tk</a> »</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="document">
|
||||||
|
<div class="documentwrapper">
|
||||||
|
<div class="bodywrapper">
|
||||||
|
<div class="body">
|
||||||
|
|
||||||
|
<div class="section" id="idle">
|
||||||
|
<span id="id1"></span><h1>25.5. IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1>
|
||||||
|
<p id="index-0">IDLE is the Python IDE built with the <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><tt class="xref py py-mod docutils literal"><span class="pre">tkinter</span></tt></a> GUI toolkit.</p>
|
||||||
|
<p>IDLE has the following features:</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<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"><tt class="xref py py-mod docutils literal"><span class="pre">tkinter</span></tt></a> GUI toolkit</li>
|
||||||
|
<li>cross-platform: works on Windows, Unix, and Mac OS X</li>
|
||||||
|
<li>multi-window text editor with multiple undo, Python colorizing,
|
||||||
|
smart indent, call tips, and many other features</li>
|
||||||
|
<li>Python shell window (a.k.a. interactive interpreter)</li>
|
||||||
|
<li>debugger (not complete, but you can set breakpoints, view and step)</li>
|
||||||
|
</ul>
|
||||||
|
<div class="section" id="menus">
|
||||||
|
<h2>25.5.1. Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>IDLE has two main window types, the Shell window and the Editor window. It is
|
||||||
|
possible to have multiple editor windows simultaneously. Output windows, such
|
||||||
|
as used for Edit / Find in Files, are a subtype of edit window. They currently
|
||||||
|
have the same top menu as Editor windows but a different default title and
|
||||||
|
context menu.</p>
|
||||||
|
<p>IDLE’s menus dynamically change based on which window is currently selected.
|
||||||
|
Each menu documented below indicates which window type it is associated with.</p>
|
||||||
|
<div class="section" id="file-menu-shell-and-editor">
|
||||||
|
<h3>25.5.1.1. File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>New File</dt>
|
||||||
|
<dd>Create a new file editing window.</dd>
|
||||||
|
<dt>Open...</dt>
|
||||||
|
<dd>Open an existing file with an Open dialog.</dd>
|
||||||
|
<dt>Recent Files</dt>
|
||||||
|
<dd>Open a list of recent files. Click one to open it.</dd>
|
||||||
|
<dt>Open Module...</dt>
|
||||||
|
<dd>Open an existing module (searches sys.path).</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="docutils" id="index-1">
|
||||||
|
<dt>Class Browser</dt>
|
||||||
|
<dd>Show functions, classes, and methods in the current Editor file in a
|
||||||
|
tree structure. In the shell, open a module first.</dd>
|
||||||
|
<dt>Path Browser</dt>
|
||||||
|
<dd>Show sys.path directories, modules, functions, classes and methods in a
|
||||||
|
tree structure.</dd>
|
||||||
|
<dt>Save</dt>
|
||||||
|
<dd>Save the current window to the associated file, if there is one. Windows
|
||||||
|
that have been changed since being opened or last saved have a * before
|
||||||
|
and after the window title. If there is no associated file,
|
||||||
|
do Save As instead.</dd>
|
||||||
|
<dt>Save As...</dt>
|
||||||
|
<dd>Save the current window with a Save As dialog. The file saved becomes the
|
||||||
|
new associated file for the window.</dd>
|
||||||
|
<dt>Save Copy As...</dt>
|
||||||
|
<dd>Save the current window to different file without changing the associated
|
||||||
|
file.</dd>
|
||||||
|
<dt>Print Window</dt>
|
||||||
|
<dd>Print the current window to the default printer.</dd>
|
||||||
|
<dt>Close</dt>
|
||||||
|
<dd>Close the current window (ask to save if unsaved).</dd>
|
||||||
|
<dt>Exit</dt>
|
||||||
|
<dd>Close all windows and quit IDLE (ask to save unsaved windows).</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="edit-menu-shell-and-editor">
|
||||||
|
<h3>25.5.1.2. Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Undo</dt>
|
||||||
|
<dd>Undo the last change to the current window. A maximum of 1000 changes may
|
||||||
|
be undone.</dd>
|
||||||
|
<dt>Redo</dt>
|
||||||
|
<dd>Redo the last undone change to the current window.</dd>
|
||||||
|
<dt>Cut</dt>
|
||||||
|
<dd>Copy selection into the system-wide clipboard; then delete the selection.</dd>
|
||||||
|
<dt>Copy</dt>
|
||||||
|
<dd>Copy selection into the system-wide clipboard.</dd>
|
||||||
|
<dt>Paste</dt>
|
||||||
|
<dd>Insert contents of the system-wide clipboard into the current window.</dd>
|
||||||
|
</dl>
|
||||||
|
<p>The clipboard functions are also available in context menus.</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Select All</dt>
|
||||||
|
<dd>Select the entire contents of the current window.</dd>
|
||||||
|
<dt>Find...</dt>
|
||||||
|
<dd>Open a search dialog with many options</dd>
|
||||||
|
<dt>Find Again</dt>
|
||||||
|
<dd>Repeat the last search, if there is one.</dd>
|
||||||
|
<dt>Find Selection</dt>
|
||||||
|
<dd>Search for the currently selected string, if there is one.</dd>
|
||||||
|
<dt>Find in Files...</dt>
|
||||||
|
<dd>Open a file search dialog. Put results in an new output window.</dd>
|
||||||
|
<dt>Replace...</dt>
|
||||||
|
<dd>Open a search-and-replace dialog.</dd>
|
||||||
|
<dt>Go to Line</dt>
|
||||||
|
<dd>Move cursor to the line number requested and make that line visible.</dd>
|
||||||
|
<dt>Show Completions</dt>
|
||||||
|
<dd>Open a scrollable list allowing selection of keywords and attributes. See
|
||||||
|
Completions in the Tips sections below.</dd>
|
||||||
|
<dt>Expand Word</dt>
|
||||||
|
<dd>Expand a prefix you have typed to match a full word in the same window;
|
||||||
|
repeat to get a different expansion.</dd>
|
||||||
|
<dt>Show call tip</dt>
|
||||||
|
<dd>After an unclosed parenthesis for a function, open a small window with
|
||||||
|
function parameter hints.</dd>
|
||||||
|
<dt>Show surrounding parens</dt>
|
||||||
|
<dd>Highlight the surrounding parenthesis.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="format-menu-editor-window-only">
|
||||||
|
<h3>25.5.1.3. Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Indent Region</dt>
|
||||||
|
<dd>Shift selected lines right by the indent width (default 4 spaces).</dd>
|
||||||
|
<dt>Dedent Region</dt>
|
||||||
|
<dd>Shift selected lines left by the indent width (default 4 spaces).</dd>
|
||||||
|
<dt>Comment Out Region</dt>
|
||||||
|
<dd>Insert ## in front of selected lines.</dd>
|
||||||
|
<dt>Uncomment Region</dt>
|
||||||
|
<dd>Remove leading # or ## from selected lines.</dd>
|
||||||
|
<dt>Tabify Region</dt>
|
||||||
|
<dd>Turn <em>leading</em> stretches of spaces into tabs. (Note: We recommend using
|
||||||
|
4 space blocks to indent Python code.)</dd>
|
||||||
|
<dt>Untabify Region</dt>
|
||||||
|
<dd>Turn <em>all</em> tabs into the correct number of spaces.</dd>
|
||||||
|
<dt>Toggle Tabs</dt>
|
||||||
|
<dd>Open a dialog to switch between indenting with spaces and tabs.</dd>
|
||||||
|
<dt>New Indent Width</dt>
|
||||||
|
<dd>Open a dialog to change indent width. The accepted default by the Python
|
||||||
|
community is 4 spaces.</dd>
|
||||||
|
<dt>Format Paragraph</dt>
|
||||||
|
<dd>Reformat the current blank-line-delimited paragraph in comment block or
|
||||||
|
multiline string or selected line in a string. All lines in the
|
||||||
|
paragraph will be formatted to less than N columns, where N defaults to 72.</dd>
|
||||||
|
<dt>Strip trailing whitespace</dt>
|
||||||
|
<dd>Remove any space characters after the last non-space character of a line.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="run-menu-editor-window-only">
|
||||||
|
<span id="index-2"></span><h3>25.5.1.4. Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Python Shell</dt>
|
||||||
|
<dd>Open or wake up the Python Shell window.</dd>
|
||||||
|
<dt>Check Module</dt>
|
||||||
|
<dd>Check the syntax of the module currently open in the Editor window. If the
|
||||||
|
module has not been saved IDLE will either prompt the user to save or
|
||||||
|
autosave, as selected in the General tab of the Idle Settings dialog. If
|
||||||
|
there is a syntax error, the approximate location is indicated in the
|
||||||
|
Editor window.</dd>
|
||||||
|
<dt>Run Module</dt>
|
||||||
|
<dd>Do Check Module (above). If no error, restart the shell to clean the
|
||||||
|
environment, then execute the module.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="shell-menu-shell-window-only">
|
||||||
|
<h3>25.5.1.5. Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>View Last Restart</dt>
|
||||||
|
<dd>Scroll the shell window to the last Shell restart.</dd>
|
||||||
|
<dt>Restart Shell</dt>
|
||||||
|
<dd>Restart the shell to clean the environment.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="debug-menu-shell-window-only">
|
||||||
|
<h3>25.5.1.6. Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Go to File/Line</dt>
|
||||||
|
<dd>Look on the current line. with the cursor, and the line above for a filename
|
||||||
|
and line number. If found, open the file if not already open, and show the
|
||||||
|
line. Use this to view source lines referenced in an exception traceback
|
||||||
|
and lines found by Find in Files. Also available in the context menu of
|
||||||
|
the Shell window and Output windows.</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="docutils" id="index-3">
|
||||||
|
<dt>Debugger (toggle)</dt>
|
||||||
|
<dd>When actived, code entered in the Shell or run from an Editor will run
|
||||||
|
under the debugger. In the Editor, breakpoints can be set with the context
|
||||||
|
menu. This feature is still incomplete and somewhat experimental.</dd>
|
||||||
|
<dt>Stack Viewer</dt>
|
||||||
|
<dd>Show the stack traceback of the last exception in a tree widget, with
|
||||||
|
access to locals and globals.</dd>
|
||||||
|
<dt>Auto-open Stack Viewer</dt>
|
||||||
|
<dd>Toggle automatically opening the stack viewer on an unhandled exception.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="options-menu-shell-and-editor">
|
||||||
|
<h3>25.5.1.7. Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Configure IDLE</dt>
|
||||||
|
<dd>Open a configuration dialog. Fonts, indentation, keybindings, and color
|
||||||
|
themes may be altered. Startup Preferences may be set, and additional
|
||||||
|
help sources can be specified. Non-default user setting are saved in a
|
||||||
|
.idlerc directory in the user’s home directory. Problems caused by bad user
|
||||||
|
configuration files are solved by editing or deleting one or more of the
|
||||||
|
files in .idlerc. On OS X, open the configuration dialog by selecting
|
||||||
|
Preferences in the application menu.</dd>
|
||||||
|
<dt>Configure Extensions</dt>
|
||||||
|
<dd>Open a configuration dialog for setting preferences for extensions
|
||||||
|
(discussed below). See note above about the location of user settings.</dd>
|
||||||
|
<dt>Code Context (toggle)(Editor Window only)</dt>
|
||||||
|
<dd>Open a pane at the top of the edit window which shows the block context
|
||||||
|
of the code which has scrolled above the top of the window.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="window-menu-shell-and-editor">
|
||||||
|
<h3>25.5.1.8. Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Zoom Height</dt>
|
||||||
|
<dd>Toggles the window between normal size and maximum height. The initial size
|
||||||
|
defaults to 40 lines by 80 chars unless changed on the General tab of the
|
||||||
|
Configure IDLE dialog.</dd>
|
||||||
|
</dl>
|
||||||
|
<p>The rest of this menu lists the names of all open windows; select one to bring
|
||||||
|
it to the foreground (deiconifying it if necessary).</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="help-menu-shell-and-editor">
|
||||||
|
<h3>25.5.1.9. Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>About IDLE</dt>
|
||||||
|
<dd>Display version, copyright, license, credits, and more.</dd>
|
||||||
|
<dt>IDLE Help</dt>
|
||||||
|
<dd>Display a help file for IDLE detailing the menu options, basic editing and
|
||||||
|
navigation, and other tips.</dd>
|
||||||
|
<dt>Python Docs</dt>
|
||||||
|
<dd>Access local Python documentation, if installed, or start a web browser
|
||||||
|
and open docs.python.org showing the latest Python documentation.</dd>
|
||||||
|
<dt>Turtle Demo</dt>
|
||||||
|
<dd>Run the turtledemo module with example python code and turtle drawings.</dd>
|
||||||
|
</dl>
|
||||||
|
<p>Additional help sources may be added here with the Configure IDLE dialog under
|
||||||
|
the General tab.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="context-menus">
|
||||||
|
<span id="index-4"></span><h3>25.5.1.10. Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>Open a context menu by right-clicking in a window (Control-click on OS X).
|
||||||
|
Context menus have the standard clipboard functions also on the Edit menu.</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Cut</dt>
|
||||||
|
<dd>Copy selection into the system-wide clipboard; then delete the selection.</dd>
|
||||||
|
<dt>Copy</dt>
|
||||||
|
<dd>Copy selection into the system-wide clipboard.</dd>
|
||||||
|
<dt>Paste</dt>
|
||||||
|
<dd>Insert contents of the system-wide clipboard into the current window.</dd>
|
||||||
|
</dl>
|
||||||
|
<p>Editor windows also have breakpoint functions. Lines with a breakpoint set are
|
||||||
|
specially marked. Breakpoints only have an effect when running under the
|
||||||
|
debugger. Breakpoints for a file are saved in the user’s .idlerc directory.</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Set Breakpoint</dt>
|
||||||
|
<dd>Set a breakpoint on the current line.</dd>
|
||||||
|
<dt>Clear Breakpoint</dt>
|
||||||
|
<dd>Clear the breakpoint on that line.</dd>
|
||||||
|
</dl>
|
||||||
|
<p>Shell and Output windows have the following.</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Go to file/line</dt>
|
||||||
|
<dd>Same as in Debug menu.</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="editing-and-navigation">
|
||||||
|
<h2>25.5.2. Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>In this section, ‘C’ refers to the <tt class="kbd docutils literal"><span class="pre">Control</span></tt> key on Windows and Unix and
|
||||||
|
the <tt class="kbd docutils literal"><span class="pre">Command</span></tt> key on Mac OSX.</p>
|
||||||
|
<ul>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">Backspace</span></tt> deletes to the left; <tt class="kbd docutils literal"><span class="pre">Del</span></tt> deletes to the right</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">C-Backspace</span></tt> delete word left; <tt class="kbd docutils literal"><span class="pre">C-Del</span></tt> delete word to the right</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first">Arrow keys and <tt class="kbd docutils literal"><span class="pre">Page</span> <span class="pre">Up</span></tt>/<tt class="kbd docutils literal"><span class="pre">Page</span> <span class="pre">Down</span></tt> to move around</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">C-LeftArrow</span></tt> and <tt class="kbd docutils literal"><span class="pre">C-RightArrow</span></tt> moves by words</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">Home</span></tt>/<tt class="kbd docutils literal"><span class="pre">End</span></tt> go to begin/end of line</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">C-Home</span></tt>/<tt class="kbd docutils literal"><span class="pre">C-End</span></tt> go to begin/end of file</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first">Some useful Emacs bindings are inherited from Tcl/Tk:</p>
|
||||||
|
<blockquote>
|
||||||
|
<div><ul class="simple">
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-a</span></tt> beginning of line</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-e</span></tt> end of line</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-k</span></tt> kill line (but doesn’t put it in clipboard)</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-l</span></tt> center window around the insertion point</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-b</span></tt> go backwards one character without deleting (usually you can
|
||||||
|
also use the cursor key for this)</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-f</span></tt> go forward one character without deleting (usually you can
|
||||||
|
also use the cursor key for this)</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-p</span></tt> go up one line (usually you can also use the cursor key for
|
||||||
|
this)</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">C-d</span></tt> delete next character</li>
|
||||||
|
</ul>
|
||||||
|
</div></blockquote>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Standard keybindings (like <tt class="kbd docutils literal"><span class="pre">C-c</span></tt> to copy and <tt class="kbd docutils literal"><span class="pre">C-v</span></tt> to paste)
|
||||||
|
may work. Keybindings are selected in the Configure IDLE dialog.</p>
|
||||||
|
<div class="section" id="automatic-indentation">
|
||||||
|
<h3>25.5.2.1. Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>After a block-opening statement, the next line is indented by 4 spaces (in the
|
||||||
|
Python Shell window by one tab). After certain keywords (break, return etc.)
|
||||||
|
the next line is dedented. In leading indentation, <tt class="kbd docutils literal"><span class="pre">Backspace</span></tt> deletes up
|
||||||
|
to 4 spaces if they are there. <tt class="kbd docutils literal"><span class="pre">Tab</span></tt> inserts spaces (in the Python
|
||||||
|
Shell window one tab), number depends on Indent width. Currently tabs
|
||||||
|
are restricted to four spaces due to Tcl/Tk limitations.</p>
|
||||||
|
<p>See also the indent/dedent region commands in the edit menu.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="completions">
|
||||||
|
<h3>25.5.2.2. Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>Completions are supplied for functions, classes, and attributes of classes,
|
||||||
|
both built-in and user-defined. Completions are also provided for
|
||||||
|
filenames.</p>
|
||||||
|
<p>The AutoCompleteWindow (ACW) will open after a predefined delay (default is
|
||||||
|
two seconds) after a ‘.’ or (in a string) an os.sep is typed. If after one
|
||||||
|
of those characters (plus zero or more other characters) a tab is typed
|
||||||
|
the ACW will open immediately if a possible continuation is found.</p>
|
||||||
|
<p>If there is only one possible completion for the characters entered, a
|
||||||
|
<tt class="kbd docutils literal"><span class="pre">Tab</span></tt> will supply that completion without opening the ACW.</p>
|
||||||
|
<p>‘Show Completions’ will force open a completions window, by default the
|
||||||
|
<tt class="kbd docutils literal"><span class="pre">C-space</span></tt> will open a completions window. In an empty
|
||||||
|
string, this will contain the files in the current directory. On a
|
||||||
|
blank line, it will contain the built-in and user-defined functions and
|
||||||
|
classes in the current name spaces, plus any modules imported. If some
|
||||||
|
characters have been entered, the ACW will attempt to be more specific.</p>
|
||||||
|
<p>If a string of characters is typed, the ACW selection will jump to the
|
||||||
|
entry most closely matching those characters. Entering a <tt class="kbd docutils literal"><span class="pre">tab</span></tt> will
|
||||||
|
cause the longest non-ambiguous match to be entered in the Editor window or
|
||||||
|
Shell. Two <tt class="kbd docutils literal"><span class="pre">tab</span></tt> in a row will supply the current ACW selection, as
|
||||||
|
will return or a double click. Cursor keys, Page Up/Down, mouse selection,
|
||||||
|
and the scroll wheel all operate on the ACW.</p>
|
||||||
|
<p>“Hidden” attributes can be accessed by typing the beginning of hidden
|
||||||
|
name after a ‘.’, e.g. ‘_’. This allows access to modules with
|
||||||
|
<tt class="docutils literal"><span class="pre">__all__</span></tt> set, or to class-private attributes.</p>
|
||||||
|
<p>Completions and the ‘Expand Word’ facility can save a lot of typing!</p>
|
||||||
|
<p>Completions are currently limited to those in the namespaces. Names in
|
||||||
|
an Editor window which are not via <tt class="docutils literal"><span class="pre">__main__</span></tt> and <a class="reference internal" href="sys.html#sys.modules" title="sys.modules"><tt class="xref py py-data docutils literal"><span class="pre">sys.modules</span></tt></a> will
|
||||||
|
not be found. Run the module once with your imports to correct this situation.
|
||||||
|
Note that IDLE itself places quite a few modules in sys.modules, so
|
||||||
|
much can be found by default, e.g. the re module.</p>
|
||||||
|
<p>If you don’t like the ACW popping up unbidden, simply make the delay
|
||||||
|
longer or disable the extension. Or another option is the delay could
|
||||||
|
be set to zero. Another alternative to preventing ACW popups is to
|
||||||
|
disable the call tips extension.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="python-shell-window">
|
||||||
|
<h3>25.5.2.3. Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">C-c</span></tt> interrupts executing command</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">C-d</span></tt> sends end-of-file; closes window if typed at a <tt class="docutils literal"><span class="pre">>>></span></tt> prompt</p>
|
||||||
|
</li>
|
||||||
|
<li><p class="first"><tt class="kbd docutils literal"><span class="pre">Alt-/</span></tt> (Expand word) is also useful to reduce typing</p>
|
||||||
|
<p>Command history</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">Alt-p</span></tt> retrieves previous command matching what you have typed. On
|
||||||
|
OS X use <tt class="kbd docutils literal"><span class="pre">C-p</span></tt>.</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">Alt-n</span></tt> retrieves next. On OS X use <tt class="kbd docutils literal"><span class="pre">C-n</span></tt>.</li>
|
||||||
|
<li><tt class="kbd docutils literal"><span class="pre">Return</span></tt> while on any previous command retrieves that command</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="syntax-colors">
|
||||||
|
<h2>25.5.3. Syntax colors<a class="headerlink" href="#syntax-colors" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>The coloring is applied in a background “thread,” so you may occasionally see
|
||||||
|
uncolorized text. To change the color scheme, edit the <tt class="docutils literal"><span class="pre">[Colors]</span></tt> section in
|
||||||
|
<tt class="file docutils literal"><span class="pre">config.txt</span></tt>.</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>Python syntax colors:</dt>
|
||||||
|
<dd><dl class="first last docutils">
|
||||||
|
<dt>Keywords</dt>
|
||||||
|
<dd>orange</dd>
|
||||||
|
<dt>Strings</dt>
|
||||||
|
<dd>green</dd>
|
||||||
|
<dt>Comments</dt>
|
||||||
|
<dd>red</dd>
|
||||||
|
<dt>Definitions</dt>
|
||||||
|
<dd>blue</dd>
|
||||||
|
</dl>
|
||||||
|
</dd>
|
||||||
|
<dt>Shell colors:</dt>
|
||||||
|
<dd><dl class="first last docutils">
|
||||||
|
<dt>Console output</dt>
|
||||||
|
<dd>brown</dd>
|
||||||
|
<dt>stdout</dt>
|
||||||
|
<dd>blue</dd>
|
||||||
|
<dt>stderr</dt>
|
||||||
|
<dd>dark green</dd>
|
||||||
|
<dt>stdin</dt>
|
||||||
|
<dd>black</dd>
|
||||||
|
</dl>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="startup">
|
||||||
|
<h2>25.5.4. Startup<a class="headerlink" href="#startup" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>Upon startup with the <tt class="docutils literal"><span class="pre">-s</span></tt> option, IDLE will execute the file referenced by
|
||||||
|
the environment variables <span class="target" id="index-5"></span><tt class="xref std std-envvar docutils literal"><span class="pre">IDLESTARTUP</span></tt> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><tt class="xref std std-envvar docutils literal"><span class="pre">PYTHONSTARTUP</span></tt></a>.
|
||||||
|
IDLE first checks for <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt>; if <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt> is present the file
|
||||||
|
referenced is run. If <tt class="docutils literal"><span class="pre">IDLESTARTUP</span></tt> is not present, IDLE checks for
|
||||||
|
<tt class="docutils literal"><span class="pre">PYTHONSTARTUP</span></tt>. Files referenced by these environment variables are
|
||||||
|
convenient places to store functions that are used frequently from the IDLE
|
||||||
|
shell, or for executing import statements to import common modules.</p>
|
||||||
|
<p>In addition, <tt class="docutils literal"><span class="pre">Tk</span></tt> also loads a startup file if it is present. Note that the
|
||||||
|
Tk file is loaded unconditionally. This additional file is <tt class="docutils literal"><span class="pre">.Idle.py</span></tt> and is
|
||||||
|
looked for in the user’s home directory. Statements in this file will be
|
||||||
|
executed in the Tk namespace, so this file is not useful for importing
|
||||||
|
functions to be used from IDLE’s Python shell.</p>
|
||||||
|
<div class="section" id="command-line-usage">
|
||||||
|
<h3>25.5.4.1. Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<div class="highlight-python3"><div class="highlight"><pre>idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
|
||||||
|
|
||||||
|
-c command run this command
|
||||||
|
-d enable debugger
|
||||||
|
-e edit mode; arguments are files to be edited
|
||||||
|
-s run $IDLESTARTUP or $PYTHONSTARTUP first
|
||||||
|
-t title set title of shell window
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>If there are arguments:</p>
|
||||||
|
<ol class="arabic simple">
|
||||||
|
<li>If <tt class="docutils literal"><span class="pre">-e</span></tt> is used, arguments are files opened for editing and
|
||||||
|
<tt class="docutils literal"><span class="pre">sys.argv</span></tt> reflects the arguments passed to IDLE itself.</li>
|
||||||
|
<li>Otherwise, if <tt class="docutils literal"><span class="pre">-c</span></tt> is used, all arguments are placed in
|
||||||
|
<tt class="docutils literal"><span class="pre">sys.argv[1:...]</span></tt>, with <tt class="docutils literal"><span class="pre">sys.argv[0]</span></tt> set to <tt class="docutils literal"><span class="pre">'-c'</span></tt>.</li>
|
||||||
|
<li>Otherwise, if neither <tt class="docutils literal"><span class="pre">-e</span></tt> nor <tt class="docutils literal"><span class="pre">-c</span></tt> is used, the first
|
||||||
|
argument is a script which is executed with the remaining arguments in
|
||||||
|
<tt class="docutils literal"><span class="pre">sys.argv[1:...]</span></tt> and <tt class="docutils literal"><span class="pre">sys.argv[0]</span></tt> set to the script name. If the
|
||||||
|
script name is ‘-‘, no script is executed but an interactive Python session
|
||||||
|
is started; the arguments are still available in <tt class="docutils literal"><span class="pre">sys.argv</span></tt>.</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="running-without-a-subprocess">
|
||||||
|
<h3>25.5.4.2. Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>If IDLE is started with the -n command line switch it will run in a
|
||||||
|
single process and will not create the subprocess which runs the RPC
|
||||||
|
Python execution server. This can be useful if Python cannot create
|
||||||
|
the subprocess or the RPC socket interface on your platform. However,
|
||||||
|
in this mode user code is not isolated from IDLE itself. Also, the
|
||||||
|
environment is not restarted when Run/Run Module (F5) is selected. If
|
||||||
|
your code has been modified, you must reload() the affected modules and
|
||||||
|
re-import any specific items (e.g. from foo import baz) if the changes
|
||||||
|
are to take effect. For these reasons, it is preferable to run IDLE
|
||||||
|
with the default subprocess if at all possible.</p>
|
||||||
|
<div class="deprecated">
|
||||||
|
<p><span class="versionmodified">Deprecated since version 3.4.</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="help-and-preferences">
|
||||||
|
<h2>25.5.5. Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<div class="section" id="additional-help-sources">
|
||||||
|
<h3>25.5.5.1. Additional help sources<a class="headerlink" href="#additional-help-sources" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>IDLE includes a help menu entry called “Python Docs” that will open the
|
||||||
|
extensive sources of help, including tutorials, available at docs.python.org.
|
||||||
|
Selected URLs can be added or removed from the help menu at any time using the
|
||||||
|
Configure IDLE dialog. See the IDLE help option in the help menu of IDLE for
|
||||||
|
more information.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="setting-preferences">
|
||||||
|
<h3>25.5.5.2. Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>The font preferences, highlighting, keys, and general preferences can be
|
||||||
|
changed via Configure IDLE on the Option menu. Keys can be user defined;
|
||||||
|
IDLE ships with four built in key sets. In addition a user can create a
|
||||||
|
custom key set in the Configure IDLE dialog under the keys tab.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="extensions">
|
||||||
|
<h3>25.5.5.3. Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3>
|
||||||
|
<p>IDLE contains an extension facility. Peferences for extensions can be
|
||||||
|
changed with Configure Extensions. See the beginning of config-extensions.def
|
||||||
|
in the idlelib directory for further information. The default extensions
|
||||||
|
are currently:</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li>FormatParagraph</li>
|
||||||
|
<li>AutoExpand</li>
|
||||||
|
<li>ZoomHeight</li>
|
||||||
|
<li>ScriptBinding</li>
|
||||||
|
<li>CallTips</li>
|
||||||
|
<li>ParenMatch</li>
|
||||||
|
<li>AutoComplete</li>
|
||||||
|
<li>CodeContext</li>
|
||||||
|
<li>RstripExtension</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sphinxsidebar">
|
||||||
|
<div class="sphinxsidebarwrapper">
|
||||||
|
<h3><a href="../contents.html">Table Of Contents</a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><a class="reference internal" href="#">25.5. IDLE</a><ul>
|
||||||
|
<li><a class="reference internal" href="#menus">25.5.1. Menus</a><ul>
|
||||||
|
<li><a class="reference internal" href="#file-menu-shell-and-editor">25.5.1.1. File menu (Shell and Editor)</a></li>
|
||||||
|
<li><a class="reference internal" href="#edit-menu-shell-and-editor">25.5.1.2. Edit menu (Shell and Editor)</a></li>
|
||||||
|
<li><a class="reference internal" href="#format-menu-editor-window-only">25.5.1.3. Format menu (Editor window only)</a></li>
|
||||||
|
<li><a class="reference internal" href="#run-menu-editor-window-only">25.5.1.4. Run menu (Editor window only)</a></li>
|
||||||
|
<li><a class="reference internal" href="#shell-menu-shell-window-only">25.5.1.5. Shell menu (Shell window only)</a></li>
|
||||||
|
<li><a class="reference internal" href="#debug-menu-shell-window-only">25.5.1.6. Debug menu (Shell window only)</a></li>
|
||||||
|
<li><a class="reference internal" href="#options-menu-shell-and-editor">25.5.1.7. Options menu (Shell and Editor)</a></li>
|
||||||
|
<li><a class="reference internal" href="#window-menu-shell-and-editor">25.5.1.8. Window menu (Shell and Editor)</a></li>
|
||||||
|
<li><a class="reference internal" href="#help-menu-shell-and-editor">25.5.1.9. Help menu (Shell and Editor)</a></li>
|
||||||
|
<li><a class="reference internal" href="#context-menus">25.5.1.10. Context Menus</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a class="reference internal" href="#editing-and-navigation">25.5.2. Editing and navigation</a><ul>
|
||||||
|
<li><a class="reference internal" href="#automatic-indentation">25.5.2.1. Automatic indentation</a></li>
|
||||||
|
<li><a class="reference internal" href="#completions">25.5.2.2. Completions</a></li>
|
||||||
|
<li><a class="reference internal" href="#python-shell-window">25.5.2.3. Python Shell window</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a class="reference internal" href="#syntax-colors">25.5.3. Syntax colors</a></li>
|
||||||
|
<li><a class="reference internal" href="#startup">25.5.4. Startup</a><ul>
|
||||||
|
<li><a class="reference internal" href="#command-line-usage">25.5.4.1. Command line usage</a></li>
|
||||||
|
<li><a class="reference internal" href="#running-without-a-subprocess">25.5.4.2. Running without a subprocess</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a class="reference internal" href="#help-and-preferences">25.5.5. Help and preferences</a><ul>
|
||||||
|
<li><a class="reference internal" href="#additional-help-sources">25.5.5.1. Additional help sources</a></li>
|
||||||
|
<li><a class="reference internal" href="#setting-preferences">25.5.5.2. Setting preferences</a></li>
|
||||||
|
<li><a class="reference internal" href="#extensions">25.5.5.3. Extensions</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>Previous topic</h4>
|
||||||
|
<p class="topless"><a href="tkinter.scrolledtext.html"
|
||||||
|
title="previous chapter">25.4. <tt class="docutils literal"><span class="pre">tkinter.scrolledtext</span></tt> — Scrolled Text Widget</a></p>
|
||||||
|
<h4>Next topic</h4>
|
||||||
|
<p class="topless"><a href="othergui.html"
|
||||||
|
title="next chapter">25.6. Other Graphical User Interface Packages</a></p>
|
||||||
|
<h3>This Page</h3>
|
||||||
|
<ul class="this-page-menu">
|
||||||
|
<li><a href="../bugs.html">Report a Bug</a></li>
|
||||||
|
<li><a href="../_sources/library/idle.txt"
|
||||||
|
rel="nofollow">Show Source</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="searchbox" style="display: none">
|
||||||
|
<h3>Quick search</h3>
|
||||||
|
<form class="search" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" />
|
||||||
|
<input type="submit" value="Go" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
<p class="searchtip" style="font-size: 90%">
|
||||||
|
Enter search terms or a module, class or function name.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="clearer"></div>
|
||||||
|
</div>
|
||||||
|
<div class="related">
|
||||||
|
<h3>Navigation</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="right" style="margin-right: 10px">
|
||||||
|
<a href="../genindex.html" title="General Index"
|
||||||
|
>index</a></li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="../py-modindex.html" title="Python Module Index"
|
||||||
|
>modules</a> |</li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="othergui.html" title="25.6. Other Graphical User Interface Packages"
|
||||||
|
>next</a> |</li>
|
||||||
|
<li class="right" >
|
||||||
|
<a href="tkinter.scrolledtext.html" title="25.4. tkinter.scrolledtext — Scrolled Text Widget"
|
||||||
|
>previous</a> |</li>
|
||||||
|
<li><img src="../_static/py.png" alt=""
|
||||||
|
style="vertical-align: middle; margin-top: -1px"/></li>
|
||||||
|
<li><a href="https://www.python.org/">Python</a> »</li>
|
||||||
|
<li>
|
||||||
|
<a href="../index.html">3.4.3 Documentation</a> »
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><a href="index.html" >The Python Standard Library</a> »</li>
|
||||||
|
<li><a href="tk.html" >25. Graphical User Interfaces with Tk</a> »</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="footer">
|
||||||
|
© <a href="../copyright.html">Copyright</a> 1990-2015, Python Software Foundation.
|
||||||
|
<br />
|
||||||
|
The Python Software Foundation is a non-profit corporation.
|
||||||
|
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||||||
|
<br />
|
||||||
|
Last updated on Sep 12, 2015.
|
||||||
|
<a href="../bugs.html">Found a bug</a>?
|
||||||
|
<br />
|
||||||
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.2.3.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -194,13 +194,6 @@ _grep_dialog_spec = {
|
||||||
"should open that file \nin a new EditorWindow."
|
"should open that file \nin a new EditorWindow."
|
||||||
}
|
}
|
||||||
|
|
||||||
_help_dialog_spec = {
|
|
||||||
'file': 'EditorWindow',
|
|
||||||
'kwds': {},
|
|
||||||
'msg': "If the help text displays, this works.\n"
|
|
||||||
"Text is selectable. Window is scrollable."
|
|
||||||
}
|
|
||||||
|
|
||||||
_io_binding_spec = {
|
_io_binding_spec = {
|
||||||
'file': 'IOBinding',
|
'file': 'IOBinding',
|
||||||
'kwds': {},
|
'kwds': {},
|
||||||
|
@ -279,6 +272,13 @@ _scrolled_list_spec = {
|
||||||
"Right clicking an item will display a popup."
|
"Right clicking an item will display a popup."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_idlehelp_spec = {
|
||||||
|
'file': 'help',
|
||||||
|
'kwds': {},
|
||||||
|
'msg': "If the help text displays, this works.\n"
|
||||||
|
"Text is selectable. Window is scrollable."
|
||||||
|
}
|
||||||
|
|
||||||
_stack_viewer_spec = {
|
_stack_viewer_spec = {
|
||||||
'file': 'StackViewer',
|
'file': 'StackViewer',
|
||||||
'kwds': {},
|
'kwds': {},
|
||||||
|
|
|
@ -174,9 +174,8 @@ def overrideRootMenu(root, flist):
|
||||||
configDialog.ConfigDialog(root, 'Settings')
|
configDialog.ConfigDialog(root, 'Settings')
|
||||||
|
|
||||||
def help_dialog(event=None):
|
def help_dialog(event=None):
|
||||||
from idlelib import textView
|
from idlelib import help
|
||||||
fn = path.join(path.abspath(path.dirname(__file__)), 'help.txt')
|
help.show_idlehelp(root)
|
||||||
textView.view_file(root, 'Help', fn)
|
|
||||||
|
|
||||||
root.bind('<<about-idle>>', about_dialog)
|
root.bind('<<about-idle>>', about_dialog)
|
||||||
root.bind('<<open-config-dialog>>', config_dialog)
|
root.bind('<<open-config-dialog>>', config_dialog)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue