# Advanced editing

| Function | Shortcut | Use this shortcut to... |
| --- | --- | --- |
| Comment with Line Comment |  `Ctrl+/` (Windows), `⌘ /` (macOS), `⌘ /` (IntelliJ IDEA Classic (macOS)), `⌘ /` (macOS System Shortcuts), `Ctrl+/` (XWin), `Ctrl+/` (GNOME), `Ctrl+/` (KDE), `Alt+;` (Emacs), `Ctrl+/` (Sublime Text), `⌘ /` (Sublime Text (macOS)), `⌘ /` (Xcode), `Ctrl+Alt+/` (Visual Studio), `⌘ ⌥ /` (Visual Studio (macOS)), `Ctrl+/` (ReSharper), `⌘ /` (ReSharper (macOS)), `Ctrl+/` (QtCreator), `⌘ /` (QtCreator (macOS)), `Ctrl+/` (NetBeans), `Ctrl+/` (Eclipse), `⌘ /` (Eclipse (macOS))  | Comment/uncomment current line or selected block with line comments. |
| Comment with Block Comment |  `Ctrl+Shift+/` (Windows), `⌘ ⌥ /` (macOS), `⌃ ⇧ /` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ /` (macOS System Shortcuts), `Ctrl+Shift+/` (XWin), `Ctrl+Shift+/` (GNOME), `Ctrl+Shift+/` (KDE), `Ctrl+Shift+/` (Emacs), `Ctrl+Shift+/` (Sublime Text), `⌘ ⌥ /` (Sublime Text (macOS)), `⌃ ⇧ /` (Xcode), `Ctrl+Shift+/` (Visual Studio), `⌘ ⌃ /` (Visual Studio (macOS)), `Ctrl+Shift+/` (ReSharper), `⌘ ⌃ /` (ReSharper (macOS)), `Ctrl+Shift+/` (QtCreator), `⌘ ⌥ /` (QtCreator (macOS)), `Ctrl+Shift+/` (NetBeans), `Ctrl+Shift+/` (Eclipse), `⌘ ⇧ /` (Eclipse (macOS))   | Comment/uncomment code with block comments. |
| Quick Documentation |  `Ctrl+Q` (Windows), `F1` (macOS), `⌃ J` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Ctrl+Q` (XWin), `Ctrl+Q` (GNOME), `Ctrl+Q` (KDE), `Ctrl+Q` (Emacs), `Ctrl+Q` (Sublime Text), `Ctrl+Q` (Sublime Text (macOS)), `⌘ ⌃ ⇧ /` (Xcode), `Ctrl+K, I` (Visual Studio), `⌘ K, I` (Visual Studio (macOS)), `Ctrl+Q` (ReSharper), `⌃ Q` (ReSharper (macOS)), `Ctrl+Q` (QtCreator), `Ctrl+Q` (QtCreator (macOS)), `Ctrl+Q` (NetBeans), `Alt+Middle-Click` (Eclipse), `⌥ Middle-Click` (Eclipse (macOS))  | Show a [popup with the documentation](viewing-inline-documentation.html) for the symbol at caret. |
| Pop-up Hector |  `Ctrl+Alt+Shift+H` (Windows), `⌘ ⌥ ⇧ H` (macOS), `⌘ ⌥ ⇧ H` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ⇧ H` (macOS System Shortcuts), `Ctrl+Alt+Shift+H` (XWin), `Ctrl+Alt+Shift+H` (GNOME), `Ctrl+Alt+Shift+H` (KDE), `Ctrl+Alt+Shift+H` (Emacs), `Ctrl+Alt+Shift+H` (Sublime Text), `⌘ ⌥ ⇧ H` (Sublime Text (macOS)), `⌘ ⌥ ⇧ H` (Xcode), `Ctrl+Alt+Shift+H` (Visual Studio), `⌘ ⌥ ⇧ H` (Visual Studio (macOS)), `Ctrl+Alt+Shift+H` (ReSharper), `⌘ ⌥ ⇧ H` (ReSharper (macOS)), `Ctrl+Alt+Shift+H` (QtCreator), `⌘ ⌥ ⇧ H` (QtCreator (macOS)), `Ctrl+Alt+Shift+H` (NetBeans), `Ctrl+Alt+Shift+H` (Eclipse), `⌘ ⌥ ⇧ H` (Eclipse (macOS))  |  Show the Highlighting level popup to configure [highlighting in the current file](disabling-and-enabling-inspections.html#change-highlighting-level-for-file) .  |
| Parameter Info |  `Ctrl+P` (Windows), `⌘ P` (macOS), `⌘ P` (IntelliJ IDEA Classic (macOS)), `⌘ P` (macOS System Shortcuts), `Ctrl+P` (XWin), `Ctrl+P` (GNOME), `Ctrl+P` (KDE), `Alt+Shift+P` (Emacs), `Ctrl+P` (Sublime Text), `Ctrl+P` (Sublime Text (macOS)), `⌘ ⇧ P` (Xcode), `Ctrl+Shift+Space` (Visual Studio), `⌘ P` (Visual Studio (macOS)), `Ctrl+P` (ReSharper), `⌘ P` (ReSharper (macOS)), `Ctrl+P` (QtCreator), `Ctrl+P` (QtCreator (macOS)), `Ctrl+P` (NetBeans), `Ctrl+P` (Eclipse), `⌃ ⇧ Space` (Eclipse (macOS))  | Show [parameters of the function call](viewing-method-parameter-information.html) at caret. |
| Error Description |  `Ctrl+F1` (Windows), `⌘ F1` (macOS), `⌘ F1` (IntelliJ IDEA Classic (macOS)), `⌘ F1` (macOS System Shortcuts), `Ctrl+F1` (XWin), `Ctrl+F1` (GNOME), `Ctrl+1` (KDE), `Ctrl+F1` (Emacs), `Ctrl+F1` (Sublime Text), `⌘ F1` (Sublime Text (macOS)), `⌘ F1` (Xcode), `Ctrl+F1` (Visual Studio), `Ctrl+F1` (Visual Studio (macOS)), `Ctrl+F1` (ReSharper), `Ctrl+F1` (ReSharper (macOS)), `Ctrl+F1` (QtCreator), `⌘ F1` (QtCreator (macOS)), `Ctrl+F1` (NetBeans), `Ctrl+F1` (Eclipse), `⌘ F1` (Eclipse (macOS))  | Show an error or warning description at the caret. |
| Override Methods... |  `Ctrl+O` (Windows), `⌃ O` (macOS), `⌘ O` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ O` (macOS System Shortcuts), `Ctrl+O` (XWin), `Ctrl+O` (GNOME), `Ctrl+O` (KDE), `Ctrl+O` (Emacs), `Ctrl+O` (Sublime Text), `Ctrl+O` (Sublime Text (macOS)), `⌘ ⌃ O` (Xcode), `Ctrl+O` (Visual Studio), `Ctrl+O` (Visual Studio (macOS)), `Ctrl+O` (ReSharper), `Ctrl+O` (ReSharper (macOS)), `Ctrl+O` (QtCreator), `Ctrl+O` (QtCreator (macOS)), `Ctrl+O` (NetBeans), `Ctrl+O` (Eclipse), `Ctrl+O` (Eclipse (macOS))  | [Override base class methods](overriding-methods-of-a-superclass.html) in the current class. |
| Surround with... |  `Ctrl+Alt+T` (Windows), `⌘ ⌥ T` (macOS), `⌘ ⌥ T` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ T` (macOS System Shortcuts), `Ctrl+Alt+Shift+B` (XWin), `Ctrl+Alt+Shift+B` (GNOME), `Ctrl+Alt+Shift+B` (KDE), `Ctrl+Alt+T` (Emacs), `Ctrl+Alt+T` (Sublime Text), `⌘ ⌥ T` (Sublime Text (macOS)), `⌘ ⌥ T` (Xcode), `Ctrl+Alt+T` (Visual Studio), `Ctrl+Alt+T` (Visual Studio (macOS)), `Ctrl+Alt+T` (ReSharper), `Ctrl+Alt+T` (ReSharper (macOS)), `Ctrl+Alt+T` (QtCreator), `⌘ ⌥ T` (QtCreator (macOS)), `Ctrl+Alt+T` (NetBeans), `Alt+Shift+Z` (Eclipse), `⌘ ⌥ Z` (Eclipse (macOS))  |  Surround the selected code fragment with  conditional statements, loops, folding regions, or other constructs.  |
| Generate |  `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Alt+Insert` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `⌘ N` (Xcode), `Alt+Insert` (Visual Studio), `⌘ ⌃ N` (Visual Studio (macOS)), `Alt+Insert` (ReSharper), `⌘ ⌃ N` (ReSharper (macOS)), `Alt+Insert` (QtCreator), `Alt+Insert` (QtCreator (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS))  |   [Generate](generating-code.html) standard code constructs.  |
| Basic Code Completion |    `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `⌃ Space` (Xcode), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (ReSharper), `⌃ Space` (ReSharper (macOS)), `Ctrl+Space` (QtCreator), `⌃ Space` (QtCreator (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS))     `Alt+/` (Windows), `⌥ /` (macOS), `⌥ /` (IntelliJ IDEA Classic (macOS)), `⌥ /` (macOS System Shortcuts), `Alt+/` (XWin), `Alt+/` (GNOME), `Alt+/` (KDE), `Alt+/` (Emacs), `Alt+/` (Sublime Text), `⌥ /` (Sublime Text (macOS)), `⌥ /` (Xcode), `Alt+/` (Visual Studio), `⌥ /` (Visual Studio (macOS)), `Alt+/` (ReSharper), `⌥ /` (ReSharper (macOS)), `Alt+/` (QtCreator), `⌥ /` (QtCreator (macOS)), `Ctrl+Shift+K` (NetBeans), `Alt+/` (Eclipse), `⌃ .` (Eclipse (macOS))    |  [Code completion](auto-completing-code.html) for any class, method or variable. |
| SmartType Code Completion |  `Ctrl+Shift+Space` (Windows), `⌃ ⇧ Space` (macOS), `⌃ ⇧ Space` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ Space` (macOS System Shortcuts), `Ctrl+Shift+Space` (XWin), `Ctrl+Shift+Space` (GNOME), `Ctrl+Shift+Space` (KDE), `Ctrl+Shift+Space` (Emacs), `Ctrl+Shift+Space` (Sublime Text), `Ctrl+Shift+Space` (Sublime Text (macOS)), `⌃ ⇧ Space` (Xcode), `Ctrl+Alt+Space` (Visual Studio), `⌃ ⌥ Space` (Visual Studio (macOS)), `Ctrl+Shift+Space` (ReSharper), `⌃ ⇧ Space` (ReSharper (macOS)), `Ctrl+Shift+Space` (QtCreator), `⌃ ⇧ Space` (QtCreator (macOS)), `Ctrl+Shift+Space` (NetBeans), `Alt+Shift+Space` (Eclipse), `⌥ ⇧ Space` (Eclipse (macOS))  | [Type-Matching completion](advanced-code-completion.html#smart_type_matching_completion) filtering the lookup list based on the expected type. |
| Expand Word |  `Alt+/` (Windows), `⌥ /` (macOS), `⌥ /` (IntelliJ IDEA Classic (macOS)), `⌥ /` (macOS System Shortcuts), `Alt+/` (XWin), `Alt+/` (GNOME), `Alt+/` (KDE), `Alt+/` (Emacs), `Alt+/` (Sublime Text), `⌥ /` (Sublime Text (macOS)), `⌥ /` (Xcode), `Alt+/` (Visual Studio), `⌥ /` (Visual Studio (macOS)), `Alt+/` (ReSharper), `⌥ /` (ReSharper (macOS)), `Alt+/` (QtCreator), `⌥ /` (QtCreator (macOS)), `Ctrl+Shift+K` (NetBeans), `Alt+/` (Eclipse), `⌃ .` (Eclipse (macOS))  | Goes through the names of classes, methods, keywords and variables in the current visibility scope.  |
| Insert Live Template... |  `Ctrl+J` (Windows), `⌘ J` (macOS), `⌘ J` (IntelliJ IDEA Classic (macOS)), `⌘ J` (macOS System Shortcuts), `Ctrl+J` (XWin), `Ctrl+J` (GNOME), `Ctrl+J` (KDE), `Ctrl+J` (Emacs), `Ctrl+J` (Sublime Text), `Ctrl+J` (Sublime Text (macOS)), `⌘ J` (Xcode), `Ctrl+K, X` (Visual Studio), `⌘ E, L` (Visual Studio (macOS)), `Ctrl+J` (ReSharper), `⌘ J` (ReSharper (macOS)), `Ctrl+J` (QtCreator), `Ctrl+J` (QtCreator (macOS)), `Ctrl+J` (NetBeans), `Ctrl+Alt+Shift+J` (Eclipse), `Ctrl+J` (Eclipse (macOS))  | Show a list of the available [live templates](creating-code-constructs-by-live-templates.html) starting with a specified prefix. |
| Surround with Live Template... |  `Ctrl+Alt+J` (Windows), `⌘ ⌥ J` (macOS), `⌘ ⌥ J` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ J` (macOS System Shortcuts), `Ctrl+Alt+J` (XWin), `Ctrl+Alt+J` (GNOME), `Ctrl+Alt+J` (KDE), `Ctrl+Alt+J` (Emacs), `Ctrl+Alt+J` (Sublime Text), `⌘ ⌥ J` (Sublime Text (macOS)), `⌘ ⌥ J` (Xcode), `Ctrl+E, U` (Visual Studio), `⌘ E, U` (Visual Studio (macOS)), `Ctrl+Alt+J` (ReSharper), `⌘ ⌥ J` (ReSharper (macOS)), `Ctrl+Alt+J` (QtCreator), `⌘ ⌥ J` (QtCreator (macOS)), `Ctrl+Alt+J` (NetBeans), `Ctrl+Alt+J` (Eclipse), `⌘ ⌥ J` (Eclipse (macOS))  | [Surround](live-templates-cpp.html#surround-with-live-template) a selection of code with a live template . |
| Next Template Variable |  `Tab` (Windows), `⇥` (macOS), `⇥` (IntelliJ IDEA Classic (macOS)), `⇥` (macOS System Shortcuts), `Tab` (XWin), `Tab` (GNOME), `Tab` (KDE), `Tab` (Emacs), `Tab` (Sublime Text), `⇥` (Sublime Text (macOS)), `⇥` (Xcode), `Tab` (Visual Studio), `⇥` (Visual Studio (macOS)), `Tab` (ReSharper), `⇥` (ReSharper (macOS)), `Tab` (QtCreator), `⇥` (QtCreator (macOS)), `Tab` (NetBeans), `Tab` (Eclipse), `⇥` (Eclipse (macOS))  | In templates: move the caret to the next template variable. |
| Previous Template Variable |  `Shift+Tab` (Windows), `⇧ ⇥` (macOS), `⇧ ⇥` (IntelliJ IDEA Classic (macOS)), `⇧ ⇥` (macOS System Shortcuts), `Shift+Tab` (XWin), `Shift+Tab` (GNOME), `Shift+Tab` (KDE), `Shift+Tab` (Emacs), `Shift+Tab` (Sublime Text), `⇧ ⇥` (Sublime Text (macOS)), `⇧ ⇥` (Xcode), `Shift+Tab` (Visual Studio), `⇧ ⇥` (Visual Studio (macOS)), `Shift+Tab` (ReSharper), `⇧ ⇥` (ReSharper (macOS)), `Shift+Tab` (QtCreator), `⇧ ⇥` (QtCreator (macOS)), `Shift+Tab` (NetBeans), `Shift+Tab` (Eclipse), `⇧ ⇥` (Eclipse (macOS))  | In templates: move the caret to the previous template variable. |

## See also

### Procedures

[Configure IDE settings](configuring-project-and-ide-settings.html)

