blob: 6bd18981349fc0cad8e05b1d7325cdaff9dddf8b [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001.. _idle:
2
Christian Heimes5b5e81c2007-12-31 16:14:33 +00003IDLE
Georg Brandl116aa622007-08-15 14:28:22 +00004====
5
6.. moduleauthor:: Guido van Rossum <guido@Python.org>
7
Georg Brandl116aa622007-08-15 14:28:22 +00008.. index::
Christian Heimes5b5e81c2007-12-31 16:14:33 +00009 single: IDLE
Georg Brandl116aa622007-08-15 14:28:22 +000010 single: Python Editor
11 single: Integrated Development Environment
12
Georg Brandlac6060c2008-05-17 18:44:45 +000013IDLE is the Python IDE built with the :mod:`tkinter` GUI toolkit.
Georg Brandl116aa622007-08-15 14:28:22 +000014
15IDLE has the following features:
16
Georg Brandlac6060c2008-05-17 18:44:45 +000017* coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit
Georg Brandl116aa622007-08-15 14:28:22 +000018
Georg Brandlc575c902008-09-13 17:46:05 +000019* cross-platform: works on Windows and Unix
Georg Brandl116aa622007-08-15 14:28:22 +000020
21* multi-window text editor with multiple undo, Python colorizing and many other
22 features, e.g. smart indent and call tips
23
24* Python shell window (a.k.a. interactive interpreter)
25
26* debugger (not complete, but you can set breakpoints, view and step)
27
28
29Menus
30-----
31
32
33File menu
34^^^^^^^^^
35
36New window
37 create a new editing window
38
39Open...
40 open an existing file
41
42Open module...
43 open an existing module (searches sys.path)
44
45Class browser
46 show classes and methods in current file
47
48Path browser
49 show sys.path directories, modules, classes and methods
50
51.. index::
52 single: Class browser
53 single: Path browser
54
55Save
56 save current window to the associated file (unsaved windows have a \* before and
57 after the window title)
58
59Save As...
60 save current window to new file, which becomes the associated file
61
62Save Copy As...
63 save current window to different file without changing the associated file
64
65Close
66 close current window (asks to save if unsaved)
67
68Exit
69 close all windows and quit IDLE (asks to save if unsaved)
70
71
72Edit menu
73^^^^^^^^^
74
75Undo
76 Undo last change to current window (max 1000 changes)
77
78Redo
79 Redo last undone change to current window
80
81Cut
82 Copy selection into system-wide clipboard; then delete selection
83
84Copy
85 Copy selection into system-wide clipboard
86
87Paste
88 Insert system-wide clipboard into window
89
90Select All
91 Select the entire contents of the edit buffer
92
93Find...
94 Open a search dialog box with many options
95
96Find again
97 Repeat last search
98
99Find selection
100 Search for the string in the selection
101
102Find in Files...
103 Open a search dialog box for searching files
104
105Replace...
106 Open a search-and-replace dialog box
107
108Go to line
109 Ask for a line number and show that line
110
111Indent region
112 Shift selected lines right 4 spaces
113
114Dedent region
115 Shift selected lines left 4 spaces
116
117Comment out region
118 Insert ## in front of selected lines
119
120Uncomment region
121 Remove leading # or ## from selected lines
122
123Tabify region
124 Turns *leading* stretches of spaces into tabs
125
126Untabify region
127 Turn *all* tabs into the right number of spaces
128
129Expand word
130 Expand the word you have typed to match another word in the same buffer; repeat
131 to get a different expansion
132
133Format Paragraph
134 Reformat the current blank-line-separated paragraph
135
136Import module
137 Import or reload the current module
138
139Run script
140 Execute the current file in the __main__ namespace
141
142.. index::
143 single: Import module
144 single: Run script
145
146
147Windows menu
148^^^^^^^^^^^^
149
150Zoom Height
151 toggles the window between normal size (24x80) and maximum height.
152
153The rest of this menu lists the names of all open windows; select one to bring
154it to the foreground (deiconifying it if necessary).
155
156
157Debug menu (in the Python Shell window only)
158^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
159
160Go to file/line
161 look around the insert point for a filename and linenumber, open the file, and
162 show the line.
163
164Open stack viewer
165 show the stack traceback of the last exception
166
167Debugger toggle
168 Run commands in the shell under the debugger
169
170JIT Stack viewer toggle
171 Open stack viewer on traceback
172
173.. index::
174 single: stack viewer
175 single: debugger
176
177
178Basic editing and navigation
179----------------------------
180
181* :kbd:`Backspace` deletes to the left; :kbd:`Del` deletes to the right
182
183* Arrow keys and :kbd:`Page Up`/:kbd:`Page Down` to move around
184
185* :kbd:`Home`/:kbd:`End` go to begin/end of line
186
187* :kbd:`C-Home`/:kbd:`C-End` go to begin/end of file
188
189* Some :program:`Emacs` bindings may also work, including :kbd:`C-B`,
190 :kbd:`C-P`, :kbd:`C-A`, :kbd:`C-E`, :kbd:`C-D`, :kbd:`C-L`
191
192
193Automatic indentation
194^^^^^^^^^^^^^^^^^^^^^
195
196After a block-opening statement, the next line is indented by 4 spaces (in the
197Python Shell window by one tab). After certain keywords (break, return etc.)
198the next line is dedented. In leading indentation, :kbd:`Backspace` deletes up
199to 4 spaces if they are there. :kbd:`Tab` inserts 1-4 spaces (in the Python
200Shell window one tab). See also the indent/dedent region commands in the edit
201menu.
202
203
204Python Shell window
205^^^^^^^^^^^^^^^^^^^
206
207* :kbd:`C-C` interrupts executing command
208
209* :kbd:`C-D` sends end-of-file; closes window if typed at a ``>>>`` prompt
210
211* :kbd:`Alt-p` retrieves previous command matching what you have typed
212
213* :kbd:`Alt-n` retrieves next
214
215* :kbd:`Return` while on any previous command retrieves that command
216
217* :kbd:`Alt-/` (Expand word) is also useful here
218
219.. index:: single: indentation
220
221
222Syntax colors
223-------------
224
225The coloring is applied in a background "thread," so you may occasionally see
226uncolorized text. To change the color scheme, edit the ``[Colors]`` section in
227:file:`config.txt`.
228
229Python syntax colors:
230 Keywords
231 orange
232
Georg Brandl48310cd2009-01-03 21:18:54 +0000233 Strings
Georg Brandl116aa622007-08-15 14:28:22 +0000234 green
235
236 Comments
237 red
238
239 Definitions
240 blue
241
242Shell colors:
243 Console output
244 brown
245
246 stdout
247 blue
248
249 stderr
250 dark green
251
252 stdin
253 black
254
255
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000256Startup
257-------
258
259Upon startup with the ``-s`` option, IDLE will execute the file referenced by
260the environment variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`.
261Idle first checks for ``IDLESTARTUP``; if ``IDLESTARTUP`` is present the file
262referenced is run. If ``IDLESTARTUP`` is not present, Idle checks for
263``PYTHONSTARTUP``. Files referenced by these environment variables are
264convenient places to store functions that are used frequently from the Idle
265shell, or for executing import statements to import common modules.
266
267In addition, ``Tk`` also loads a startup file if it is present. Note that the
268Tk file is loaded unconditionally. This additional file is ``.Idle.py`` and is
269looked for in the user's home directory. Statements in this file will be
270executed in the Tk namespace, so this file is not useful for importing functions
271to be used from Idle's Python shell.
272
273
Georg Brandl116aa622007-08-15 14:28:22 +0000274Command line usage
275^^^^^^^^^^^^^^^^^^
276
277::
278
279 idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
280
281 -c command run this command
282 -d enable debugger
283 -e edit mode; arguments are files to be edited
284 -s run $IDLESTARTUP or $PYTHONSTARTUP first
285 -t title set title of shell window
286
287If there are arguments:
288
Éric Araujo713d3032010-11-18 16:38:46 +0000289#. If ``-e`` is used, arguments are files opened for editing and
Georg Brandl116aa622007-08-15 14:28:22 +0000290 ``sys.argv`` reflects the arguments passed to IDLE itself.
291
Éric Araujo713d3032010-11-18 16:38:46 +0000292#. Otherwise, if ``-c`` is used, all arguments are placed in
Georg Brandl116aa622007-08-15 14:28:22 +0000293 ``sys.argv[1:...]``, with ``sys.argv[0]`` set to ``'-c'``.
294
Éric Araujo713d3032010-11-18 16:38:46 +0000295#. Otherwise, if neither ``-e`` nor ``-c`` is used, the first
Georg Brandl116aa622007-08-15 14:28:22 +0000296 argument is a script which is executed with the remaining arguments in
297 ``sys.argv[1:...]`` and ``sys.argv[0]`` set to the script name. If the script
298 name is '-', no script is executed but an interactive Python session is started;
299 the arguments are still available in ``sys.argv``.
300
301