Wing Pro Reference Manual

Index of All Documentation »

This manual documents the entire feature set of Wing Pro, which is a Python IDE designed for professional programmers.

It covers installation, customization, setting up a project, editing, searching, refactoring, comparing files and directories, navigating source code, using the integrated Python shell, executing operating system commands, unit testing, debugging, version control, code analysis, and extending the IDE with user-defined scripts.

Trouble-shooting information is also included, for installation and usage problems, as well as a complete reference for Wing Pro's preferences, command set, and available key bindings.

If you are looking for a gentler introduction to Wing's feature set, try the Tutorial in Wing's Help menu. A more concise overview of Wing's features is also available in the Quick Start Guide.

Our How-Tos collection explains how to use Wing with specific Python frameworks for web and GUI development, 2D and 3D modeling, rendering, and compositing applications, matplotlib, Raspberry Pi, and other Python-based libraries.

Wing Personal and Wing 101 are free versions of Wing that omit many of the features documented here. In those Python IDEs, the Wing Manual in the Help menu is an appropriately abridged version of this manual. Compare Products

Wingware, the feather logo, Wing Python IDE, Wing Pro, Wing Personal, Wing 101, Wing IDE, Wing IDE 101, Wing IDE Personal, Wing IDE Professional, Wing IDE Pro, Wing Debugger, and "The Intelligent Development Environment for Python Programmers" are trademarks or registered trademarks of Wingware in the United States and other countries.

Disclaimers: The information contained in this document is subject to change without notice. Wingware shall not be liable for technical or editorial errors or omissions contained in this document; nor for incidental or consequential damages resulting from furnishing, performance, or use of this material.

Hardware and software products mentioned herein are named for identification purposes only and may be trademarks of their respective owners.

Copyright (c) 1999-2019 by Wingware. All rights reserved.

P.O. Box 400527
Cambridge, MA  02140-0006
United States of America

Section Contents


    1.0. Product Levels
    1.1. Licenses
    1.2. Supported Platforms
    1.3. Supported Python versions
    1.4. Technical Support
    1.5. Prerequisites for Installation
    1.6. Installing Wing
    1.7. Running Wing
    1.8. Installing your License
    1.9. User Settings Directory
    1.10. Upgrading
       1.10.0. Migrating From Older Versions
       1.10.1. Fixing a Failed Upgrade
    1.11. Installation Details and Options
       1.11.0. Linux Installation Notes
       1.11.1. Remote Display on Linux
       1.11.2. Installing Extra Documentation
       1.11.3. Source Code Installation
    1.12. Backing Up and Sharing Settings
    1.13. Removing Wing
    1.14. Command Line Usage


    2.0. Keyboard Personalities
       2.0.0. Key Equivalents
       2.0.1. Key Maps
       2.0.2. Key Names
    2.1. User Interface Options
       2.1.0. Display Style and Colors
       2.1.1. Windowing Policies
       2.1.2. User Interface Layout
       2.1.3. Altering Text Display
    2.2. Preferences
       2.2.0. Preferences File Layers
       2.2.1. Preferences File Format
    2.3. Custom Syntax Coloring
    2.4. Perspectives
    2.5. File Filters

Project Manager

    3.0. Creating a Project
    3.1. Removing Files and Directories
    3.2. Saving the Project
    3.3. Sorting the View
    3.4. Navigating to Files
       3.4.0. Keyboard Navigation
    3.5. Sharing Projects
    3.6. Project-wide Properties
       3.6.0. Environment Variable Expansion
    3.7. Per-file Properties
    3.8. Launch Configurations

Source Code Editor

    4.0. Syntax Coloring
    4.1. Right-click Editor Menu
    4.2. Navigating Source
    4.3. File status and read-only files
    4.4. Transient, Sticky, and Locked Editors
    4.5. Auto-completion
    4.6. Source Assistant
       4.6.0. Docstring Type and Validity
       4.6.1. Goto Definition from Documentation
       4.6.2. Python Documentation Links
       4.6.3. Working with Runtime Type Information
       4.6.4. Source Assistant Options
    4.7. PEP 8 Reformatting
    4.8. Auto-editing
    4.9. Multiple Selections
    4.11. File Sets
    4.12. Code Snippets
    4.13. Indentation
       4.13.0. How Indent Style is Determined
       4.13.1. Indentation Preferences
       4.13.2. Indentation Policy
       4.13.3. Auto-Indent
       4.13.4. The Tab Key
       4.13.5. Checking Indentation
       4.13.6. Changing Block Indentation
       4.13.7. Indentation Manager
    4.14. Folding
    4.15. Brace Matching
    4.16. Support for files in .zip or .egg files
    4.17. Keyboard Macros
    4.18. Notes on Copy/Paste
    4.19. Auto-reloading Changed Files
    4.20. Auto-save


    5.0. Toolbar Quick Search
    5.1. Keyboard-driven Mini-Search/Replace
    5.2. Search Tool
    5.3. Search in Files Tool
       5.3.0. Replace in Multiple Files
    5.4. Find Points of Use
    5.5. Wildcard Search Syntax


    6.0. Rename Symbol
    6.1. Move Symbol
    6.2. Extract Function / Method
    6.3. Introduce Variable
    6.4. Symbol to *

Diff/Merge Tool

Source Code Browser

    8.0. Display Choices
    8.1. Display Filters
    8.2. Sorting the Browser Display
    8.3. Navigating the Views
    8.4. Browser Keyboard Navigation

Interactive Python Shell

    9.0. Active Ranges in the Python Shell
    9.1. Python Shell Auto-completion
    9.2. Debugging Code in the Python Shell
    9.3. Python Shell Options

OS Commands Tool

    10.0. OS Command Properties

Unit Testing

    11.0. Project Test Files
    11.1. Running and Debugging Tests
    11.2. Running unittest Tests From the Command Line


    12.0. Quick Start
    12.1. Specifying Main Entry Point
       12.1.0. Named Entry Points
    12.2. Debug Properties
    12.3. Setting Breakpoints
    12.4. Starting Debug
    12.5. Debugger Status
    12.6. Flow Control
    12.7. Viewing the Stack
    12.8. Viewing Debug Data
       12.8.0. Stack Data View
 Popup Menu Options
 Filtering Value Display
       12.8.1. Watching Values
       12.8.2. Evaluating Expressions
       12.8.3. Problems Handling Values
    12.9. Debug Process I/O
       12.9.0. External I/O Consoles
       12.9.1. Disabling Debug Process I/O Multiplexing
    12.10. Interactive Debug Probe
       12.10.0. Managing Program State
       12.10.1. Debugging Code Recursively
       12.10.2. Debug Probe Options
       12.10.3. Debug Probe Limitations
    12.11. Multi-Process Debugging
    12.12. Debugging Multi-threaded Code
    12.13. Managing Exceptions
    12.14. Running Without Debug

Advanced Debugging Topics

    13.0. Debugging Externally Launched Code
       13.0.0. Debugging Externally Launched Remote Code
       13.0.1. Externally Launched Process Behavior
       13.0.2. Debugging Embedded Python Code
       13.0.3. Debug Server Configuration
       13.0.4. Debugger API
    13.1. Manually Configured Remote Debugging
       13.1.0. Manually Configuring SSH Tunneling
       13.1.1. Manually Configured File Location Maps
 Manually Configured File Location Map Examples
       13.1.2. Manually Configured Remote Debugging Example
       13.1.3. Manually Installing the Debugger
    13.2. Using wingdb to Initiate Debug
    13.3. Attaching and Detaching
       13.3.0. Access Control
       13.3.1. Detaching
       13.3.2. Attaching
       13.3.3. Identifying Foreign Processes
       13.3.4. Constraints
    13.4. Handling Large Values and Strings in the Debugger
    13.5. Debugging C/C++ and Python together
    13.6. Debugging Extension Modules on Linux/Unix
    13.7. OS X Debugging Notes
    13.8. Debugging Code with XGrab* Calls
    13.9. Debugging Non-Python Mainloops
    13.10. Debugging Code Running Under Py2exe
    13.11. Debugger Limitations

Integrated Version Control

    14.0. Setting Up Version Control in Wing
    14.1. Version Control Tool Panel
    14.2. Common Version Control Operations
    14.3. Bazaar
    14.4. CVS
    14.5. Git
    14.6. Mercurial
    14.7. Perforce
    14.8. Subversion
    14.9. Version Control Configuration
       14.9.0. Configuring SSH
       14.9.1. Configuring Subversion
       14.9.2. Configuring CVS

Source Code Analysis

    15.0. How Analysis Works
    15.1. Static Analysis Limitations
    15.2. Helping Wing Analyze Code
    15.3. Analysis Disk Cache

PyLint Integration

Remote Development

    17.0. Setting up SSH for Remote Development
    17.1. Configuring Remote Hosts
    17.2. Setting up Remote Projects
    17.3. Remote Development Features
    17.4. SSH Setup Details
       17.4.0. Working With OpenSSH
       17.4.1. Working With PuTTY
    17.5. Specifying Environment for the Remote Python
    17.6. Manually Installing the Remote Agent
    17.7. Remote Agent User Settings

Scripting and Extending Wing

    18.0. Scripting Example
    18.1. Getting Started
    18.2. Script Syntax
    18.3. Scripting API
    18.4. Debugging Extension Scripts
    18.5. Advanced Scripting

Trouble-shooting Guide

    19.0. Trouble-shooting Failure to Start
    19.1. Speeding up Wing
    19.2. Trouble-shooting Failure to Debug
       19.2.0. Failure to Start Debug
       19.2.1. Failure to Stop on Breakpoints or Show Source Code
       19.2.2. Failure to Stop on Exceptions
       19.2.3. Extra Debugger Exceptions
    19.3. Trouble-shooting Other Known Problems
    19.4. Obtaining Diagnostic Output

Preferences Reference

Command Reference

    21.0. Top-level Commands
    21.1. Project Manager Commands
    21.2. Editor Commands
    21.3. Search Manager Commands
    21.4. Unit Testing Commands
    21.5. Version Control Commands
    21.6. Debugger Commands
    21.7. Script-provided Add-on Commands

Key Binding Reference

    22.0. Wing Personality
    22.1. Emacs Personality
    22.2. VI/VIM Personality
    22.3. Visual Studio Personality
    22.4. OS X Personality
    22.5. Eclipse Personality
    22.6. Brief Personality

License Information

    23.0. Wing Software License
    23.1. Open Source License Information