blob: b40e470153616843fddd1409e0571a017ad36825 [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
Ned Deily2778d0d2012-10-20 13:25:34 -0700157Debug menu
158^^^^^^^^^^
159
160* in the Python Shell window only
Georg Brandl116aa622007-08-15 14:28:22 +0000161
162Go to file/line
Ned Deily2778d0d2012-10-20 13:25:34 -0700163 Look around the insert point for a filename and line number, open the file,
164 and show the line. Useful to view the source lines referenced in an
165 exception traceback.
Georg Brandl116aa622007-08-15 14:28:22 +0000166
Ned Deily2778d0d2012-10-20 13:25:34 -0700167Debugger
168 Run commands in the shell under the debugger.
Georg Brandl116aa622007-08-15 14:28:22 +0000169
Ned Deily2778d0d2012-10-20 13:25:34 -0700170Stack viewer
171 Show the stack traceback of the last exception.
Georg Brandl116aa622007-08-15 14:28:22 +0000172
Ned Deily2778d0d2012-10-20 13:25:34 -0700173Auto-open Stack Viewer
174 Open stack viewer on traceback.
Georg Brandl116aa622007-08-15 14:28:22 +0000175
176.. index::
177 single: stack viewer
178 single: debugger
179
180
Ned Deily2778d0d2012-10-20 13:25:34 -0700181Edit context menu
182^^^^^^^^^^^^^^^^^
183
184* Right-click in Edit window (Control-click on OS X)
185
Andrew Svetlovd1837672012-11-01 22:41:19 +0200186Cut
187 Copy selection into system-wide clipboard; then delete selection
188
189Copy
190 Copy selection into system-wide clipboard
191
192Paste
193 Insert system-wide clipboard into window
194
Ned Deily2778d0d2012-10-20 13:25:34 -0700195Set Breakpoint
196 Sets a breakpoint. Breakpoints are only enabled when the debugger is open.
197
198Clear Breakpoint
199 Clears the breakpoint on that line.
200
201.. index::
Andrew Svetlovd1837672012-11-01 22:41:19 +0200202 single: Cut
203 single: Copy
204 single: Paste
Ned Deily2778d0d2012-10-20 13:25:34 -0700205 single: Set Breakpoint
206 single: Clear Breakpoint
207 single: breakpoints
208
209
210Shell context menu
211^^^^^^^^^^^^^^^^^^
212
213* Right-click in Python Shell window (Control-click on OS X)
214
Andrew Svetlovd1837672012-11-01 22:41:19 +0200215Cut
216 Copy selection into system-wide clipboard; then delete selection
217
218Copy
219 Copy selection into system-wide clipboard
220
221Paste
222 Insert system-wide clipboard into window
223
Ned Deily2778d0d2012-10-20 13:25:34 -0700224Go to file/line
225 Same as in Debug menu.
226
227
Georg Brandl116aa622007-08-15 14:28:22 +0000228Basic editing and navigation
229----------------------------
230
231* :kbd:`Backspace` deletes to the left; :kbd:`Del` deletes to the right
232
233* Arrow keys and :kbd:`Page Up`/:kbd:`Page Down` to move around
234
235* :kbd:`Home`/:kbd:`End` go to begin/end of line
236
237* :kbd:`C-Home`/:kbd:`C-End` go to begin/end of file
238
239* Some :program:`Emacs` bindings may also work, including :kbd:`C-B`,
240 :kbd:`C-P`, :kbd:`C-A`, :kbd:`C-E`, :kbd:`C-D`, :kbd:`C-L`
241
242
243Automatic indentation
244^^^^^^^^^^^^^^^^^^^^^
245
246After a block-opening statement, the next line is indented by 4 spaces (in the
247Python Shell window by one tab). After certain keywords (break, return etc.)
248the next line is dedented. In leading indentation, :kbd:`Backspace` deletes up
249to 4 spaces if they are there. :kbd:`Tab` inserts 1-4 spaces (in the Python
250Shell window one tab). See also the indent/dedent region commands in the edit
251menu.
252
253
254Python Shell window
255^^^^^^^^^^^^^^^^^^^
256
257* :kbd:`C-C` interrupts executing command
258
259* :kbd:`C-D` sends end-of-file; closes window if typed at a ``>>>`` prompt
260
261* :kbd:`Alt-p` retrieves previous command matching what you have typed
262
263* :kbd:`Alt-n` retrieves next
264
265* :kbd:`Return` while on any previous command retrieves that command
266
267* :kbd:`Alt-/` (Expand word) is also useful here
268
269.. index:: single: indentation
270
271
272Syntax colors
273-------------
274
275The coloring is applied in a background "thread," so you may occasionally see
276uncolorized text. To change the color scheme, edit the ``[Colors]`` section in
277:file:`config.txt`.
278
279Python syntax colors:
280 Keywords
281 orange
282
Georg Brandl48310cd2009-01-03 21:18:54 +0000283 Strings
Georg Brandl116aa622007-08-15 14:28:22 +0000284 green
285
286 Comments
287 red
288
289 Definitions
290 blue
291
292Shell colors:
293 Console output
294 brown
295
296 stdout
297 blue
298
299 stderr
300 dark green
301
302 stdin
303 black
304
305
Benjamin Petersonf07d0022009-03-21 17:31:58 +0000306Startup
307-------
308
309Upon startup with the ``-s`` option, IDLE will execute the file referenced by
310the environment variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`.
311Idle first checks for ``IDLESTARTUP``; if ``IDLESTARTUP`` is present the file
312referenced is run. If ``IDLESTARTUP`` is not present, Idle checks for
313``PYTHONSTARTUP``. Files referenced by these environment variables are
314convenient places to store functions that are used frequently from the Idle
315shell, or for executing import statements to import common modules.
316
317In addition, ``Tk`` also loads a startup file if it is present. Note that the
318Tk file is loaded unconditionally. This additional file is ``.Idle.py`` and is
319looked for in the user's home directory. Statements in this file will be
320executed in the Tk namespace, so this file is not useful for importing functions
321to be used from Idle's Python shell.
322
323
Georg Brandl116aa622007-08-15 14:28:22 +0000324Command line usage
325^^^^^^^^^^^^^^^^^^
326
327::
328
329 idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
330
331 -c command run this command
332 -d enable debugger
333 -e edit mode; arguments are files to be edited
334 -s run $IDLESTARTUP or $PYTHONSTARTUP first
335 -t title set title of shell window
336
337If there are arguments:
338
Éric Araujo713d3032010-11-18 16:38:46 +0000339#. If ``-e`` is used, arguments are files opened for editing and
Georg Brandl116aa622007-08-15 14:28:22 +0000340 ``sys.argv`` reflects the arguments passed to IDLE itself.
341
Éric Araujo713d3032010-11-18 16:38:46 +0000342#. Otherwise, if ``-c`` is used, all arguments are placed in
Georg Brandl116aa622007-08-15 14:28:22 +0000343 ``sys.argv[1:...]``, with ``sys.argv[0]`` set to ``'-c'``.
344
Éric Araujo713d3032010-11-18 16:38:46 +0000345#. Otherwise, if neither ``-e`` nor ``-c`` is used, the first
Georg Brandl116aa622007-08-15 14:28:22 +0000346 argument is a script which is executed with the remaining arguments in
347 ``sys.argv[1:...]`` and ``sys.argv[0]`` set to the script name. If the script
348 name is '-', no script is executed but an interactive Python session is started;
349 the arguments are still available in ``sys.argv``.
350
351