Configure keyboard shortcuts
PyCharm includes several predefined keymaps and lets you customize frequently used shortcuts.
To view the keymap configuration, open the Settings dialog Ctrl+Alt+S and select Keymap.
PyCharm automatically suggests a predefined keymap based on your environment. Make sure that it matches the OS you are using or select the one that matches shortcuts from another IDE or editor you are used to (for example, Emacs).
A keymap is a list of actions with corresponding keyboard and mouse shortcuts and abbreviations. You cannot change predefined keymaps. Instead, when you modify any shortcut of a predefined keymap, PyCharm creates a copy of that keymap, which you can configure. Click to duplicate the selected keymap, rename, remove, or restore it to default values. For more information about keymap files, refer to Location of user-defined keymaps.
Some actions inherit their keyboard shortcuts or mouse shortcuts from other actions. On the Keymap page, you can navigate to the parent action using the inherited from link. When you change a shortcut of a parent action, all shortcuts of its child actions change accordingly. When you change a shortcut of a child action, it does not affect the shortcuts of its parent action, but the inheritance link is removed making both actions independent.
To find an action by name, type it in the search field of the Keymap page. If you know the shortcut of an action, click and press the key combination in the Find Shortcut dialog.
When consulting this page and other pages in PyCharm documentation, you can see keyboard shortcuts for the keymap that you use in the IDE — choose it using the selector at the top of a page.
Add a keyboard shortcut
On the Keymap page of the Settings dialog Ctrl+Alt+S, right-click an action and select Add Keyboard Shortcut.
In the Keyboard Shortcut dialog, press the necessary key combination.
If necessary, select the Second stroke checkbox to define a complex shortcut with two sequential key combinations.
Click OK to save the shortcut.
The key combination that you press is displayed in the Keyboard Shortcut dialog, as well as a warning if it conflicts with existing shortcuts.
Add a mouse shortcut
On the Keymap page of the Settings dialog Ctrl+Alt+S, right-click an action and select Add Mouse Shortcut.
In the Mouse Shortcut dialog, move the mouse pointer to the central area and click or scroll as necessary.
Click OK to save the shortcut.
The performed mouse manipulations are displayed in the Mouse Shortcut dialog, as well as a warning if it conflicts with existing shortcuts.
Add an abbreviation
An abbreviation can be used to quickly find an action without a shortcut. For example, you can press Ctrl+Shift+A and type the name of the Jump to Colors and Fonts action to quickly modify the color and font settings of the element under the current caret position. If you assign an abbreviation for this action (like JCF), you can then type it instead of the full action name.
On the Keymap page of the Settings dialog Ctrl+Alt+S, right-click an action and select Add Abbreviation.
In the Abbreviation dialog, type the desired abbreviation and click OK.
Reset action shortcuts to default
If you changed, added, or removed a shortcut for an action, you can reset it to the initial configuration.
On the Keymap page of the Settings dialog Ctrl+Alt+S, right-click an action and select Reset Shortcuts.
Disable double-key shortcuts
Do the following to disable the default double-key shortcuts, Double Shift for Search for a target by name (Search everywhere) and Double Ctrl for Run Anything.
Press Ctrl+Alt+S to open the IDE settings and then select
.Scroll to the User Interface section and set the Disable double modifier key shortcuts checkbox:
Location of user-defined keymaps
When you modify one of the default keymaps, PyCharm creates a custom keymap file in the keymaps directory under the PyCharm IDE configuration directory:
- Syntax
%APPDATA%\JetBrains\<product><version>\keymaps
- Example
C:\Users\JohnS\AppData\Roaming\JetBrains\PyCharm2023.3\keymaps
- Syntax
~/Library/Application Support/JetBrains/<product><version>/keymaps
- Example
~/Library/Application Support/JetBrains/PyCharm2023.3/keymaps
- Syntax
~/.config/JetBrains/<product><version>/keymaps
- Example
~/.config/JetBrains/PyCharm2023.3/keymaps
A custom keymap file contains only the differences relative to its parent keymap. For example, if you modify the default Windows keymap, your custom keymap will be its child. The file will contain only the shortcuts that you added or modified, while all other shortcuts of your custom keymap will be the same as the default Windows keymap.
You can share your custom keymaps with team members or between your IDE instances. Copy the corresponding keymap file and put it in the keymaps directory on another PyCharm installation. Then select the copied keymap on the Keymap settings page.
Conflicts with global OS shortcuts
Predefined keymaps do not cover every possible platform, version, and configuration. Some shortcuts can conflict with global system actions and shortcuts for third-party software. To fix these conflicts, you can reassign or disable the conflicting shortcut.
PyCharm detects conflicts with system shortcuts and notifies you with a popup message:
Click Modify Shortcuts to open the Keymap settings dialog where you can make the necessary adjustments:
Here are a few examples of possible system shortcut conflicts with the default keymap in PyCharm. Make sure that function keys are enabled on your system.
Shortcut | System action | PyCharm action |
---|---|---|
⌃Space | Select the previous input source | Basic code completion |
⇧⌘A | Search man Page Index in Terminal | Find Action |
Shortcut | System action | PyCharm action |
---|---|---|
Ctrl+Alt+S | Shade window | Open the Settings dialog |
Ctrl+Alt+L | Lock screen | Reformat Code |
Ctrl+Alt+T | Launch Terminal | Surround With |
Ctrl+Alt+F12 | Open the tty12 virtual console | File path |
Ctrl+Alt+Left Ctrl+Alt+Right | Switch between Workspaces | Undo/redo navigation operations |
Alt+F7 | Move window | Find Usages |
Alt+F8 | Resize window | Evaluate Expression |