
Advanced Editing
| Windows | Action | |
|---|---|---|
| Ctrl+/ | Comment/uncomment current line or selected block with line comments | |
| Ctrl+Shift+/ | Comment/uncomment code with block comments | |
| Ctrl+Shift+Alt+H | Show the Highlighting level pop-up window to configure highlighting in the current file | |
| Ctrl+P | Show parameters of the method call at the caret | |
| Alt+Q | Show the current method or class declaration when it is not visible | |
| Ctrl+F1 | Show an error or warning description at the caret | |
| Shift+F1 | Open browser with the documentation for the selected item | |
| Ctrl+O | Override base class methods in the current class | |
| Ctrl+Alt+T | Surround selected code fragment with if, do, tags or other constructs | |
| Ctrl+Spacebar | Code completion for any class, method or variable | |
| Ctrl+Shift+Spacebar | Code Completion filtering the lookup list basing on expected type | |
| Alt+/ | Goes through the names of classes, methods, keywords and variables in the current visibility scope | |
| Ctrl+J | Show a pop-up list of starting with a specified prefix | |
| Ctrl+Alt+J | Surround the selection with one of the templates | |
| Tab | In templates: move the caret to the next template variable | |
| Shift+Tab | In templates: move the caret to the previous template variable |
Basic Editing
| Windows | Action | |
|---|---|---|
| Backspace | Delete a character to the left of the caret | |
| Ctrl+Z | Undo last operation | |
| Ctrl+Shift+Z | Redo last undone operation | |
| Ctrl+X | Cut a current line or a selected code block to the Clipboard | |
| Ctrl+C | Copy a current line or a selected code block to the Clipboard | |
| Ctrl+V | Paste from the Clipboard to the caret location | |
| Ctrl+Shift+V | Paste selected entry from the Clipboard to the caret location | |
| Up Arrow | Move the caret one line up | |
| Shift+Up Arrow | Move the caret one line up selecting the text | |
| Down Arrow | Move the caret one line down | |
| Shift+Down Arrow | Move the caret one line down selecting the text | |
| Left Arrow | Move the caret one character to the left | |
| Shift+Left Arrow | Move the caret one character to the left selecting the text | |
| Right Arrow | Move the caret one character to the right | |
| Shift+Right Arrow | Move the caret one character to the right selecting the text | |
| Ctrl+PgDn | Move the caret down to the page bottom | |
| Ctrl+Shift+PgDn | Move the caret down to the page bottom, selecting the text | |
| Ctrl+PgUp | Move the caret up to the page top | |
| Ctrl+Shift+PgUp | Move the caret up to the page bottom, selecting the text | |
| PgDn | Move the caret one Page down | |
| Shift+PgDn | Move the caret one Page down, selecting the text | |
| PgUp | Move the caret one Page up | |
| Shift+PgUp | Move the caret one Page up, selecting the text | |
| Ctrl+Down Arrow | Scroll the text one line down | |
| Ctrl+M | Scroll a line at caret to the center of the screen | |
| Ctrl+Up Arrow | Scroll the text one line up | |
| End | Move the caret to the end of line | |
| Shift+End | Move the caret to the end of line, selecting the text | |
| Home | Move the caret to the beginning of line | |
| Shift+Home | Move the caret to the beginning of line, selecting the text | |
| Ctrl+Right Arrow | Move the caret to the next word | |
| Ctrl+Shift+Right Arrow | Move the caret to the next word, selecting it | |
| Ctrl+Left Arrow | Move the caret to the previous word | |
| Ctrl+Shift+Left Arrow | Move the caret to the previous word, selecting it | |
| Ctrl+End | Move the caret to the end of text | |
| Ctrl+Shift+End | Move the caret to the end of text, selecting it | |
| Ctrl+Home | Move the caret to the beginning of text | |
| Ctrl+Shift+Home | Move the caret to the beginning of text, selecting it | |
| Ctrl+A | Select the entire text opened in the editor | |
| Ctrl+Y | Delete the line where the caret is currently located | |
| Ctrl+Delete | Delete the word starting from the current caret location up to the word end | |
| Ctrl+Backspace | Delete the word starting from the current caret location up to the word start | |
| Insert | Toggle insert/overwrite modes | |
| Ctrl+D | Duplicate selected block or the line at the caret | |
| Ctrl+Shift+U | Toggle case of the selected text block | |
| Ctrl+] | Move the caret to the current code block end, highlighting the block limits | |
| Ctrl+Shift+] | Move the caret to the current code block end, selecting the code beginning from the initial caret location | |
| Ctrl+[ | Move the caret to the current code block start, highlighting the block limits | |
| Ctrl+Shift+[ | Move the caret to the current code block start, selecting the code beginning from the initial caret location | |
| Shift+Enter | Start a new line after the current one positioning the caret in accordance with the current indentation level | |
| Ctrl+Alt+Enter | Start a new line before the current one | |
| Ctrl+Shift+J | Concatenate the selected lines into one or concatenate the line where the caret is currently located with the next line | |
| Ctrl+Enter | Split the selected line at the point where the caret is located, leaving the caret at the end of the first line | |
| Ctrl+W | Select successively increasing code blocks starting from the current caret location | |
| Ctrl+Shift+W | Remove sequentially the selection made by the action | |
| Tab | Move the selected block to the next indentation level | |
| Shift+Tab | Move the selected block to the previous indentation level | |
| Ctrl+Alt+I | Indent the current line or selected block according to the General settings |
Code Folding
| Windows | Action | |
|---|---|---|
| Ctrl+NumPad+ | Expand the current collapsed fragment | |
| Ctrl+NumPad - | Collapse the current folding region | |
| Ctrl+Alt+NumPad+ | Expand the current folded fragment and all the subordinate collapsed folding regions within that fragment | |
| Ctrl+Alt+NumPad - | Collapse the current folding region and all the subordinate folding regions within it | |
| Ctrl+Shift+NumPad+ | Expand all collapsed fragments within the selection, or, if nothing is selected, expand all the collapsed fragments in the current file | |
| Ctrl+Shift+NumPad - | Collapse all folding regions within the selection, or, if nothing is selected, collapse all the folding regions in the current file | |
| Ctrl+NumPad 1..5 | Expand the current fragment and all the nested fragments up to the specified level | |
| Ctrl+Shift+NumPad 1..5 | Expand all the collapsed fragments in the file up to the specified nesting level | |
| Ctrl+. | Collapse the selected fragment and create a custom folding region for it to make it "foldable" / Expand the current fragment and remove the corresponding custom folding region to make the fragment "unfoldable" |
Running and Debugging
| Windows | Action | |
|---|---|---|
| Shift+F10 | Run a program | |
| Shift+Alt+F10 | Quickly select run/debug configuration and run or edit it | |
| Ctrl+F5 | Repeat execution with the same settings, with the same tab of the Run tool window having the focus | |
| Shift+F10 | Repeat execution with the same settings, with the same tab of the editor having the focus | |
| Shift+F9 | Debug a program | |
| Shift+Alt+F9 | Quickly select run/debug configuration and debug or edit it | |
| F8 | Step to the next line in the current file See Stepping Through the Program | |
| F7 | Step to the next executed line See Stepping Through the Program | |
| Shift+F7 | Select the method to step in, if the current line contains multiple method call expressions See Choosing a Method to Step Into | |
| Shift+F8 | Step to a first executed line after returning from the current method See Stepping Through the Program | |
| Shift+Alt+F8 | Run until the next line in this method or file, skipping the methods referenced at the current execution point and ignoring breakpoints See Stepping Through the Program | |
| Shift+Alt+F7 | Steps into the method called in the current execution point even if this method is to be skipped See Stepping Through the Program | |
| Alt+F9 | Run to the line where the caret is located See Stepping Through the Program | |
| Ctrl+Alt+F9 | Run to the line where the caret is located, ignoring breakpoints See Stepping Through the Program | |
| F9 | Resume program execution | |
| Shift+F2 | Terminate a debugging session | |
| Alt+F8 | Evaluate an arbitrary expression | |
| Ctrl+Alt+F8 | Evaluate an arbitrary expression without calling Evaluate Expression dialog | |
| Ctrl+F8 | Toggle breakpoint at the current line | |
| Ctrl+Shift+F8 | View/manage all breakpoints |
General Shortcuts
| Windows | Action | |
|---|---|---|
| Ctrl+Shift+F4 | Close an active tab in a tool window (for example, Find tool window) | |
| Ctrl+F4 | Close an active editor | |
| F4 | Open an editor for the selected item or items and give focus to the last opened file | |
| Alt+O | Export contents of a tool window to a text file This feature applies to the Version Control Tool Window, Messages Tool Window, and other tool windows that provide the export button on the window toolbar | |
| Alt+Insert | Create a new class, file or directory See Populating Modules | |
| Ctrl+S | Save all files and settings | |
| Alt+Right Arrow | When several tabs are open in the editor or a view, open the next tab to the right (or first tab if the current one is the last) | |
| Alt+Left Arrow | When several tabs are open in the editor or a view, open the next tab to the left (or last tab if the current one is the first) | |
| Alt+Enter | Display intention actions (if any) for the code where the caret is currently located, or the selected GUI component in a form | |
| Ctrl+Alt+Y | Detect all externally changed files and reload them from disk |
Search
| Windows | Action | |
|---|---|---|
| Ctrl+F | Initiate text search | |
| Ctrl+R | Initiate text search and replace | |
| F3/Shift+F3 | Navigate to the next/previous occurrence of a selected word in the editor | |
| Ctrl+F3 | Search in the editor for the word where the caret is currently located | |
| Ctrl+F | Initiate text search | |
| Ctrl+Shift+F | Initiate search for a text string in the specified scope | |
| Ctrl+Shift+R | Initiate search and replace in the specified scope | |
| Alt+F7 | Initiate search for usages of the selected symbol in the specified scope | |
| Ctrl+F7 | Initiate search for usages of the selected symbol in the current file | |
| Ctrl+Shift+F7 | Highlight usages of a symbol at caret | |
| Ctrl+Alt+F7 | Show usages of a symbol at caret in a pop-up window Use list of found usages to jump to the desired location | |
| Ctrl+Shift+A | Find an action, bypassing menus See Finding Actions |
Navigation between Bookmarks
| Windows | Action | |
|---|---|---|
| Ctrl+Specified Number | Navigate to a numbered bookmark with the corresponding number | |
| F11 | Turn anonymous bookmark on or off | |
| Ctrl+F11 | Turn bookmark with mnemonic on or off | |
| Shift+F11 | Open Bookmarks dialog to manage existing bookmarks and navigate between them |
Navigation between IDE Components
| Windows | Action | |
|---|---|---|
| Alt+F1 | Move focus from the current file, class, method or reference to a data source, to a view suggested in the Select Target pop-up menu Refer to Navigating Between IDE Components | |
| Ctrl+NumPad - | Collapse all nodes in a tree view | |
| Ctrl+NumPad+ | Expand all nodes in a tree view | |
| Ctrl+Tab | Navigate between files opened in the editor, and tool windows | |
| Alt+Number | Open a tool window with the specified number | |
| Shift+Esc | Hide the currently active tool window | |
| F12 | Activate the last focused tool window |
Navigation between Source Code
| Windows | Action | |
|---|---|---|
| Ctrl+F12 | Display the Structure pop-up window for quick navigation through the current file | |
| Alt+F1 | Move focus from the current file, class, method or reference to a data source table to a view suggested in the Select Target pop-up menu See Navigating Between IDE Components | |
| Ctrl+E | Show the list of recently opened files | |
| Ctrl+Shift+E | Show the list of recently updated files | |
| Ctrl+H | Browse hierarchy for the selected class class | |
| Ctrl+N | Navigate directly to a class in project by specifying its name in a pop-up dialog box | |
| Ctrl+Shift+N | Navigate directly to a file in project by specifying its name in a pop-up dialog box | |
| Ctrl+E | Show the list of recently opened files | |
| Ctrl+Shift+E | Show the list of recently updated files | |
| Ctrl+G | Navigate to any line in the current file by specifying its number | |
| Ctrl+B | Navigate to declaration of a symbol at caret | |
| Ctrl+Alt+B | Navigate to implementation of the item at caret | |
| Ctrl+Shift+B | Navigate to a type declaration of a symbol at caret, the symbol being a variable or a method call | |
| Ctrl+U | Navigate to a super method declaration of a method under the caret | |
| Ctrl+Shift+T | Navigate to a test for the class at caret, if any, or navigate from a test to a test subject | |
| Ctrl+Alt+Home | Navigate between files with complicated relationships between them | |
| Alt+Down Arrow | Navigate to the next method declaration in the active editor tab | |
| Alt+Up Arrow | Navigate to the previous method declaration in the active editor tab | |
| Ctrl+[ | Navigate to the start of the current code block | |
| Ctrl+] | Navigate to the end of the current code block | |
| Ctrl+Alt+Left Arrow | Undo last navigation operation | |
| Ctrl+Alt+Right Arrow | Redo last undone navigation operation | |
| Ctrl+Alt+Up Arrow | Navigate to a previous found item | |
| Ctrl+Alt+Down Arrow | Navigate to a next found item | |
| Ctrl+Shift+Backspace | Move through the most recent change points | |
| F2 | Navigate to the next found error/warning | |
| Shift+F2 | Navigate to the previous found error/warning |
Refactoring
| Windows | Action | |
|---|---|---|
| Shift+F6 | Rename the selected file, class, field, method, etc and change all references to it accordingly | |
| Ctrl+F6 | Change the signature of the selected method and update all the corresponding method calls | |
| F6 | Move the selected class, package or static member to another package or class and update all the corresponding references | |
| F5 | Create a copy of the selected class, file or directory in the same or different directory or package | |
| Alt+Delete | Delete the selected class, method or field checking its usages | |
| Ctrl+Alt+M | Turn the selected code fragment into a method | |
| Ctrl+Alt+V | Create a new variable and use the selected expression as its value | |
| Ctrl+Alt+F | Create a new field and use the selected expression as its value | |
| Ctrl+Alt+C | Create a new constant (static final field) and use the selected expression as its value | |
| Ctrl+Alt+P | Turn the selected expression into a new method parameter | |
| Ctrl+Alt+N | Inline the selected method or variable |