Wing Python IDE Quick Start Guide

Index of All Documentation » How-Tos »

"The best Python IDE. And I have tried them all!" -- Ahmed Ali

This is a minimalist guide for getting started quickly with Wing's Python IDE features. For a more in-depth introduction, try the Tutorial.

Install Python and Wing

If you don't already have them on your system, install Python and Wing. For detailed instructions, see Installing Wing.

Start Wing

Wing can be started from a menu, desktop, or tray icon or using the command line executable. For detailed instructions, see Running the IDE.

If you don't have a license, you can obtain a 30-day trial the first time you start Wing.

Once Wing is running, you should switch to using the Quick Start Guide listed in Wing's Help menu because it contains links directly into the IDE's functionality. That copy also omits features not available in Wing Personal and Wing 101.

Set up a Project

After Wing is running, create a new project from the Project menu. Then configure your project with the following steps:

  • Use Add Existing Directory in the Project menu to your sources to the project. It's best to constrain this to the directories you are actively working with and let Wing find the libraries you use through the PYTHONPATH.
  • Use Project Properties in the Project menu to set Python Executable to the python.exe or other interpreter executable you want to use with your project. This is typically the full path that is in sys.executable in the desired Python installation.
  • If your code alters sys.path or loads modules in a non-standard way then you may need to set Python Path so that Wing can find your modules for auto-completion, refactoring, debugging, testing, other features.
  • You may want to right-click on your main entry point in the Project tool and select Set As Main Debug File so that debugging always starts there.
  • Use Save Project As in the Project menu to save your project to disk.

Note: Wing may consume significant CPU time when it first analyzes your code base. Progress is indicated in the lower left of the IDE window. Once this is done, the results are cached across sessions and Wing should run with a snappy and responsive interface.

See Project-Wide Properties and Per-File Properties for a description of all available properties. See Source Code Analysis for background on how Wing's source analysis system works.

Wing 101 does not have projects. Configuring the Python environment is instead done with Configure Python in the Edit menu.

Configuring the UI

You are now ready to start working with code, but may want to make a few configuration changes first:

Key Bindings - Wing can emulate VI/Vim, Visual Studio, Emacs, Eclipse, and Brief editors, selected with the User Interface > Keyboard > Personality preference.

Tab Key - The default tab key action depends on file type, context, and whether or not there is a selection. This can be changed from the User Interface > Keyboard > Tab Key Action preference.

There are many other options in Preferences.

Navigating Code

Wing provides many ways to get around your code quickly:

Goto-definition is available from the toolbar, Source menu, and by right-clicking on symbols in the editor or shells. Use the browser-like forward/back history buttons at the top left of the editor to return from visiting a point of definition.

Source Index menus at the top of the editor provide quick access to other parts of a source file.

Find Symbol in the Source menu in Wing Pro and Wing Personal jumps to a symbol defined in the current file by typing a fragment of its name. Find Symbol in Project in Wing Pro works the same way but searches all files in the project.

Open From Project in the File menu in Wing Pro and Wing Personal is a similar interface for quickly opening project files.

Find Points of Use in Wing Pro, when you right-click on a symbol shows where that symbol is being used. Wing distinguishes between separate but like-named symbols.

Source Browser in the tools menu in Wing Pro and Wing Personal provides module or class oriented display of the structure of your code. Show both the Source Browser and Source Assistant for detailed information about selected symbols.

Mini-search (Wing Pro and Wing Personal) is a powerful keyboard-driven search and replace facility. The key bindings listed in the Mini-search area of the Edit menu will display the search entry area at the bottom of the screen.

Search in the Tools menu provides incremental text, wildcard, and regular expression search and replace in selections and the current file.

Search in Files in the Tools menu in Wing Pro and Wing Personal provides wildcard and regular expression search and replace in filtered sets of files, directories, named file sets, and within the project.

Toolbar search is another quick way to search the current file.

Editing Code

Wing's editor focuses on fast error-free Python coding:

Auto-completion in Wing's editor speeds up typing and reduces coding errors. The auto-completer uses Tab by default for completion, but this can be changed in the Editor > Auto-Completion > Completion Keys preference. This feature is disabled by default in Wing 101.

Call Tips and Documentation shown in the Source Assistant (Wing Pro and Wing Personal only) update as you move through your code or work in the shells.

Auto-indent while typing in Wing Pro and Wing Personal matches the file's existing indentation. When multiple lines are pasted, they are re-indented according to context (a single Undo reverts any unwanted indentation change). Wing also provides an Indentation tool for converting a file's indentation style.

Auto-Editing in Wing Pro implements a range of operations such as auto-entering closing parentheses, brackets, braces, and quotes. Among other things, Wing also auto-enters invocation arguments, manages new blocks with the : key, and corrects out-of-order typing.

Auto-editing operations can be enabled and disabled in the Editor > Auto-Editing preferences group. The default set includes those operations that don't affect finger memory. The others are well worth learning.

For details, see Auto-Editing.

Refactoring in Wing Pro supports automated renaming and moving of symbols, extracting functions or methods, and introducing variables more quickly than by manually editing code.

Multiple Selections can be made with the Editor > Multiple Selections menu or the multiple selections toolbar item, and by pressing Ctrl (or Command on the Mac) while making a selection with the mouse. Once multiple selections have been made, edits made will be applied to all the selections at once.

Snippets in Wing Pro are included in Wing's auto-completer as a quick way to enter commonly repeated coding motifs for coding standards, documentation, testing, and so forth. Data entry for snippet arguments is inline in the editor. Use the Tab key to move between the fields. Edit or add snippets in the Snippets tool.

Turbo Completion in Wing Pro is an optional auto-completion mode made possible by Wing's powerful source analysis engine. When the Editor > Auto-Editing > Python Turbo Mode preference is enabled, Wing turns every non-symbol key into a completion key in contexts where a new symbol name is not being typed. The modifier keys can be used alone to escape from the completer in the rare cases when Wing fails to provide the desired completion.

Code Selection from the Edit > Select menu makes selecting whole statements, blocks, or scopes a snap, before copying, editing, or searching through them.

Debugging Code

Wing's debugger is a powerful tool for finding and fixing bugs, understanding unfamiliar code, and writing new code interactively. You can launch code from the Debug menu or toolbar, or from the Python Shell (click on the bug icon in the top right of the shell to enable debugging there).

Breakpoints can be set by clicking on the breakpoint margin of the editor and debugging is started from the toolbar or Debug menu. The Stack Data tool is used to inspect or change program data. Debug process I/O is shown in the Debug I/O tool, or optionally in an external console.

Interactive Debugging is supported by Wing Pro's Debug Probe, which provides an interactive Python prompt that executes code in the current debug stack frame. When the debugger is paused Wing also uses the live runtime state to fuel the auto-completer in the editor, Source Assistant, goto-definition, and other tools.

Conditional Breakpoints can be used in Wing Pro to isolate and understand complex bugs by stopping before they occur. Using a conditional breakpoint to isolate a broken case and the Debug Probe to design a fix is far more accurate and productive than relaunching code repeatedly.

Move Program Counter is also supported in Wing Pro, in the innermost stack frame by right clicking in the editor and selecting Move Program Counter Here.

Watching Values in Wing Pro by right-clicking on the editor or any of the data views tracks values over time by symbolic name or object reference in the Watch tool. Expressions can be also be watched.

Launch Configurations in the Project menu in Wing Pro and Wing Personal can be used with Named Entry Points in the Debug menu define different runtime environments for debugging, executing, and unit testing your code.

Other Features

Wing contains many other features, including:

Python Shell -- Wing's Python Shell lets you try out code in a sandbox process kept isolated from Wing and your debug process. Code run here can optionally be debugged. To enable this, click the bug icon in the top right of the Python Shell. In Wing Pro and Wing Personal, shell provides auto-completion, goto-definition, and is integrated with the Source Assistant.

Unit Testing in Wing Pro's Testing tool works with unittest, doctest, pytest, nose, and Django unit tests. You can run tests suites, view the results, and debug tests.

Version Control in Wing Pro supports Mercurial, Git, Subversion, Perforce, Bazaar, and CVS version control systems. Wing should auto-detect which systems are used in your project and show the appropriate additional menubar menus and tools in the Tools menu. Right-click on the editor, Project tool, or items in the version control tool to compare that file or directory to the repository with Compare to Repository. Wing will display both versions with differences highlighted and the added toolbar tools can be used to move through and merge differences. This capability is also available for comparing two files or directories, and a modified buffer to its disk file, by clicking on the Difference/Merge icon in the toolbar.

Remote Development is very easy to do in Wing Pro by setting up SSH access to a remote host, and then configuring Wing to access that host from the Remote Hosts item in the Project menu, setting the Python Executable in Project Properties to that remote host, and adding remote files and directories to your project. Wing can edit, debug, test, search, inspect, and manage files, run the Python Shell, and execute OS Commands on the remote host in the same way as it does when working locally.

Running Command Lines in Wing Pro and Wing Personal's OS Commands tool makes it possible to set up and easily execute external tools. This can also be used to set up a build command that will be executed automatically before each debug sessions.

User Interface Customization in Preferences gives you control of the overall layout and color of the IDE, among many other options. Right click on the tabs for layout options, or drag tool and editor tabs to move them or create new splits. Right click on the toolbar to configure which tools are visible or to add your own. Wing also supports defining sharable color palettes and syntax colors.

Perspectives in Wing Pro and Wing Personal let you save named tool panel configurations.

Many Other Features such as bookmarks, line editing, code folding, macros are also available. You can also extend Wing by writing Python scripts.

We welcome feedback, which can be submitted with Submit Feedback in Wing's Help menu, or by emailing at

Related Documents

For more information see: