IntelliJ IDEA will create the project and generate some files for us. Adding the Database Dependencies. In our new project, let’s open our generated pom.xml file. You’ll notice that IntelliJ IDEA generated some dependencies needed for our application based on the frameworks selected when we created our project. Starting WebStorm/IntelliJ/PyCharm The last step is to head over to Jetbrains website, and download a linux version of WebStorm/IntelliJ/PyCharm, extract it and finally running /home/tmikus/WebStorm-193.6015.40/bin/webstorm.sh. If everything worked correctly it should open a new window of your editor. Good luck, and happy coding! IntelliJ IDEA will also detect the modules in the project, and correctly set up the test, main and resources folders in a Maven project like the one in the video. You an see the result in the Project window. There’s more than one way to clone a GitHub project from inside IntelliJ IDEA.
Elm language support for IntelliJ, WebStorm, PhpStorm and PyCharm (JetBrains) - klazuka/intellij-elm. When Python is the main language of choice, an IDE like PyCharm is a great choice Web development and server development (services) development is also very well supported React programming needs some additional assistance as JSX is a new file format which mixes HTML as a JS string. That is amazingly integrated as well.
IntelliJ IDEA (hereafter referred as IntelliJ) is one of the most powerful and popular Integrated Development Environments (IDE) for Java. It was developed and is maintained by JetBrains, and is available in community and ultimate edition. This feature-rich IDE enables rapid development and helps in improving code quality. This tutorial starts with a basic introduction and slowly dives deep into the advanced features. The tutorial is divided into 2 parts: beginners can start from the first 4 chapters. Others can skip over directly to Chapter-5.
This tutorial is targeted for first-time learners, as well as moderate users of IntelliJ. Beginners will get a fair understanding about IntelliJ and its functioning, and others will be able to take their knowledge on this subject to the next level.
Pycharm Webstorm Comparison
This tutorial requires that the readers have some preliminary knowledge of the software development process, along with Java programming language. In the later sections of this tutorial, we will discuss integration with build tools, unit testing frameworks, debugger, profiling, version control system and database. It is assumed that the required tools are installed and configured on system and reader is familiar with those tools.
Pycharm Webstorm
Port of IntelliJ IDEA key bindings for VS Code. Includes keymaps for popular JetBrains products like IntelliJ Ultimate, WebStorm, PyCharm, PHP Storm, etc. UsageIntelliJ ImporterImport keymaps XML- Launch Code
- Open command pallet
Ctrl -Shift -P (Windows) or Cmd -Shift -P (macOS) - Choose
Import IntelliJ Keybindngs (XML) - Copy & Paste it into
keybindings.json
EditingLinux, Windows | macOS | Feature | Supported |
---|
ctrl+space | ctrl+space | Basic code completion (the name of any class, method or variable) | ✅ | ctrl+shift+space | ctrl+shift+space | Smart code completion (filters the list of methods and variables by expected type) | N/A | enter | enter | Choose Lookup Item | ✅ | tab | tab | Choose Lookup Item Replace | ✅ | ctrl+shift+enter | cmd+shift+enter | Complete statement | ✅ | ctrl+p | cmd+p | Parameter info (within method call arguments) | ✅ | ctrl+q | ctrl+j | Quick documentation lookup | ✅ | ctrl+f1 | shift+f1 | External Doc | N/A | ctrl+mouseover | cmd+mouseover | Brief Info | N/A | ctrl+f1 | cmd+f1 | Show descriptions of error or warning at caret | ✅ | alt+insert | cmd+n | Generate code... (Getters, Setters, Constructors, hashCode/equals, toString) | ✅ | ctrl+o | ctrl+o | Override methods | N/A | ctrl+i | ctrl+i | Implement methods | N/A | ctrl+alt+t | cmd+alt+t | Surround with... (if..else, try..catch, for, synchronized, etc.) | N/A | ctrl+/ | cmd+/ | Comment/uncomment with line comment | ✅ | ctrl+numpad_divide | cmd+numpad_divide | Comment/uncomment with line comment | ✅ | ctrl+shift+/ | cmd+alt+/ | Comment/uncomment with block comment | ✅ | ctrl+shift+numpad_divide | cmd+alt+numpad_divide | Comment/uncomment with block comment | ✅ | ctrl+w | alt+up | Select successively increasing code blocks | ✅ | ctrl+shift+w | alt+down | Decrease current selection to previous state | ✅ | alt+q | ctrl+shift+q | Context info | N/A | alt+enter | alt+enter | Show intention actions and quick-fixes | ✅ | ctrl+alt+l | cmd+alt+l | Reformat code | ✅ | ctrl+alt+l | cmd+alt+l | Reformat selected code | ✅ | ctrl+alt+o | ctrl+alt+o | Optimize imports | N/A | ctrl+alt+i | ctrl+alt+i | Auto-indent line(s) | N/A | tab | tab | Indent selected lines | N/A | shift+tab | shift+tab | Unindent selected lines | N/A | ctrl+x | cmd+x | Cut current line or selected block to clipboard | ✅ | shift+delete | cmd+delete | Cut current line or selected block to clipboard | ✅ | ctrl+c | cmd+c | Copy current line or selected block to clipboard | ✅ | ctrl+v | cmd+v | Paste from clipboard | ✅ | ctrl+shift+v | cmd+shift+v | Paste from recent buffers... | N/A | ctrl+d | cmd+d | Duplicate Line | ✅ | ctrl+d | cmd+d | Duplicate Selection | ✅ | ctrl+y | cmd+backspace | Delete line at caret | ✅ | ctrl+shift+j | ctrl+shift+j | Smart line join | ✅ | ctrl+enter | cmd+enter | Smart line split | ✅ | shift+enter | shift+enter | Start new line | ✅ | ctrl+shift+u | cmd+shift+u | Toggle case for word at caret or selected block | N/A | ctrl+shift+] | cmd+shift+] | Select till code block end | N/A | ctrl+shift+[ | cmd+shift+[ | Select till code block start | N/A | ctrl+delete | alt+delete | Delete to word end | ✅ | ctrl+backspace | alt+backspace | Delete to word start | ✅ | ctrl+= | cmd+= | Expand code block | ✅ | ctrl+numpad_add | cmd+numpad_add | Expand code block | ✅ | ctrl+- | cmd+- | Collapse code block | ✅ | ctrl+numpad_subtract | cmd+numpad_subtract | Collapse code block | ✅ | ctrl+alt+= | cmd+alt+= | Expand code block recursively | ✅ | ctrl+alt+numpad_add | cmd+alt+numpad_add | Expand code block recursively | ✅ | ctrl+alt+- | cmd+alt+- | Collapse code block recursively | ✅ | ctrl+alt+numpad_subtract | cmd+alt+numpad_subtract | Collapse code block recursively | ✅ | ctrl+shift+= | cmd+shift+= | Expand all | ✅ | ctrl+shift+numpad_add | cmd+shift+numpad_add | Expand all | ✅ | ctrl+shift+- | cmd+shift+- | Collapse all | ✅ | ctrl+shift+numpad_subtract | cmd+shift+numpad_subtract | Collapse all | ✅ | ctrl+f4 | cmd+w | Close active editor tab | ✅ | alt+j | ctrl+g | Add selection for Next Occurrence | ✅ | alt+shift+j | ctrl+shift+g | Unselect Occurrence | ✅ | shift+alt+down | shift+alt+down | Move Line Down | ✅ | shift+alt+up | shift+alt+up | Move Line Up | ✅ | shift+ctrl+8 | shift+cmd+8 | Column Selection Mode | ✅ |
Search/ReplaceLinux, Windows | macOS | Feature | Supported |
---|
shift shift | shift shift | Search everywhere | ✅ | ctrl+f | cmd+f | Find | ✅ | f3 | cmd+g | Find next | ✅ | shift+f3 | cmd+shift+g | Find previous | ✅ | ctrl+r | cmd+r | Replace | ✅ | ctrl+shift+f | cmd+shift+f | Find in path | ✅ | ctrl+shift+r | cmd+shift+r | Replace in path | ✅ | ctrl+shift+s | cmd+shift+s | Search structurally (Ultimate Edition only) | N/A | ctrl+shift+m | cmd+shift+m | Replace structurally (Ultimate Edition only) | N/A |
Usage SearchLinux, Windows | macOS | Feature | Supported |
---|
alt+f7 | alt+f7 | Find usages | ✅ | alt+ctrl+f7 | alt+cmd+f7 | Show usages | ✅ | ctrl+f7 | cmd+f7 | Find usages in file | N/A | ctrl+shift+f7 | cmd+shift+f7 | Highlight usages in file | N/A | ctrl+alt+f7 | cmd+alt+f7 | Show usages | N/A |
Compile and RunLinux, Windows | macOS | Feature | Supported |
---|
ctrl+f9 | cmd+f9 | Make project (compile modifed and dependent) | ✅ | ctrl+shift+f9 | cmd+shift+f9 | Compile selected file, package or module | N/A | alt+shift+f10 | ctrl+alt+r | Select configuration and run | ✅ | alt+shift+f9 | ctrl+alt+d | Select configuration and debug | ✅ | shift+f10 | ctrl+r | Run | ✅ | shift+f9 | ctrl+d | Debug | ✅ | ctrl+shift+f10 | ctrl+shift+r | Run context configuration from editor | N/A | ctrl+shift+f10 | ctrl+shift+r | Debug context configuration from editor | N/A |
DebuggingLinux, Windows | macOS | Feature | Supported |
---|
f8 | f8 | Step over | ✅ | f7 | f7 | Step into | ✅ | shift+f7 | shift+f7 | Smart step into | N/A | shift+f8 | shift+f8 | Step out | ✅ | alt+f9 | alt+f9 | Run to cursor | ✅ | alt+f8 | alt+f8 | Evaluate expression | ✅ | alt+f8 | alt+f8 | Evaluate expression (selection) | ✅ | f9 | cmd+alt+r | Resume program | ✅ | ctrl+f8 | cmd+f8 | Toggle breakpoint | ✅ | ctrl+shift+f8 | cmd+shift+f8 | View breakpoints | ✅ |
NavigationLinux, Windows | macOS | Feature | Supported |
---|
ctrl+n | cmd+o | Go to class | ✅ | ctrl+shift+n | cmd+shift+o | Go to file | ✅ | ctrl+alt+shift+n | cmd+alt+o | Go to symbol | ✅ | alt+left | ctrl+left | Go to previous editor tab | ✅ | N/A | shift+cmd+[ | Go to previous editor tab | ✅ | alt+right | ctrl+right | Go to next editor tab | ✅ | N/A | shift+cmd+] | Go to next editor tab | ✅ | f12 | f12 | Go back to previous tool window | N/A | escape | escape | Go to editor (from tool window) | N/A | shift+escape | shift+escape | Hide active or last active window (Sidebar) | ✅ | shift+escape | shift+escape | Hide active or last active window (Output) | ✅ | shift+escape | shift+escape | Hide active or last active window (Problems) | ✅ | shift+escape | shift+escape | Hide active or last active window (Debug Console) | ✅ | shift+escape | shift+escape | Hide active or last active window (Terminal) | ✅ | shift+escape | shift+escape | Hide active or last active window (Panel) | N/A | ctrl+shift+f4 | cmd+shift+f4 | Close active run/messages/find/... tab | N/A | ctrl+g | cmd+l | Go to line | ✅ | ctrl+e | cmd+e | Recent files popup | ✅ | ctrl+alt+left | cmd+alt+left | Navigate back | ✅ | N/A | cmd+[ | Navigate back | ✅ | ctrl+alt+right | cmd+alt+right | Navigate forward | ✅ | N/A | cmd+] | Navigate forward | ✅ | ctrl+shift+backspace | cmd+shift+backspace | Navigate to last edit location | ✅ | alt+f1 | alt+f1 | Select current file or symbol in any view | N/A | ctrl+b | cmd+b | Go to declaration | ✅ | ctrl+alt+b | cmd+alt+b | Go to implementation(s) | ✅ | ctrl+shift+i | alt+space | Open quick definition lookup | ✅ | N/A | cmd+y | Open quick definition lookup | ✅ | ctrl+shift+b | ctrl+shift+b | Go to type declaration | ✅ | ctrl+u | cmd+u | Go to super-method/super-class | N/A | alt+up | ctrl+up | Go to previous method | N/A | alt+down | ctrl+down | Go to next method | N/A | ctrl+] | cmd+] | Move to code block end | N/A | ctrl+[ | cmd+[ | Move to code block start | N/A | alt+7 | cmd+7 | Structure | ✅ | ctrl+f12 | cmd+f12 | File structure popup | ✅ | ctrl+h | ctrl+h | Type hierarchy | N/A | ctrl+shift+h | cmd+shift+h | Method hierarchy | N/A | ctrl+alt+h | ctrl+alt+h | Call hierarchy | N/A | f2 | f2 | Next highlighted error | ✅ | shift+f2 | shift+f2 | Previous highlighted error | ✅ | f4 | f4 | Edit source | ✅ | ctrl+enter | cmd+down | View source | ✅ | shift+ctrl+down | shift+alt+down | Move Statement Down | ✅ | shift+ctrl+up | shift+alt+up | Move Statement Up | ✅ | alt+home | alt+home | Show navigation bar | N/A | f11 | f3 | Toggle bookmark | N/A | ctrl+f11 | alt+f3 | Toggle bookmark with mnemonic | N/A | ctrl+0 | ctrl+0 | Go to numbered bookmark | N/A | shift+f11 | cmd+f3 | Show bookmarks | N/A | ctrl+alt+shift+down | ctrl+alt+shift+down | Next Change | ✅ | ctrl+alt+shift+up | ctrl+alt+shift+up | Previous Change | ✅ | ctrl+home | cmd+home | Move Caret to Text Start | ✅ | ctrl+end | cmd+end | Move Caret to Text End | ✅ |
RefactoringLinux, Windows | macOS | Feature | Supported |
---|
f5 | f5 | Copy | N/A | f6 | f6 | Move | N/A | alt+delete | cmd+delete | Safe Delete | N/A | shift+f6 | shift+f6 | Rename | ✅ | shift+f6 | shift+f6 | Select All Occurrences | ✅ | shift+f6 | shift+f6 | Rename (File) | ✅ | ctrl+f6 | cmd+f6 | Change Signature | N/A | ctrl+alt+n | cmd+alt+n | Inline | N/A | ctrl+alt+m | cmd+alt+m | Extract Method | ✅ | ctrl+alt+v | cmd+alt+v | Extract Variable | ✅ | ctrl+alt+f | cmd+alt+f | Extract Field | N/A | ctrl+alt+c | cmd+alt+c | Extract Constant | N/A | ctrl+alt+p | cmd+alt+p | Extract Parameter | N/A |
VCS/Local HistoryLinux, Windows | macOS | Feature | Supported |
---|
ctrl+alt+k | cmd+k | Commit project to VCS | ✅ | ctrl+shift+k | cmd+alt+k | Push commits to VCS | ✅ | ctrl+t | cmd+t | Update project from VCS | ✅ | ctrl+alt+z | cmd+alt+z | Rollback Lines | ✅ | alt+shift+c | alt+shift+c | View recent changes | N/A |
Live TemplatesLinux, Windows | macOS | Feature | Supported |
---|
ctrl+alt+j | cmd+alt+j | Surround with Live Template | N/A | ctrl+j | cmd+j | Insert Live Template | N/A |
GeneralLinux, Windows | macOS | Feature | Supported |
---|
alt+0 | cmd+0 | Activate Messages window (Problems) | ✅ | alt+numpad0 | cmd+numpad0 | Activate Messages window (Problems) | ✅ | alt+1 | cmd+1 | Open corresponding tool window (Explorer) | ✅ | alt+numpad1 | cmd+numpad1 | Open corresponding tool window (Explorer) | ✅ | alt+1 | cmd+1 | Close corresponding tool window (Explorer) | ✅ | alt+numpad1 | cmd+numpad1 | Close corresponding tool window (Explorer) | ✅ | alt+3 | cmd+3 | Open corresponding tool window (Search) | ✅ | alt+numpad3 | cmd+numpad3 | Open corresponding tool window (Search) | ✅ | alt+3 | cmd+3 | Close corresponding tool window (Search) | ✅ | alt+numpad3 | cmd+numpad3 | Close corresponding tool window (Search) | ✅ | alt+5 | cmd+5 | Open corresponding tool window (Debug) | ✅ | alt+numpad5 | cmd+numpad5 | Open corresponding tool window (Debug) | ✅ | alt+5 | cmd+5 | Close corresponding tool window (Debug) | ✅ | alt+numpad5 | cmd+numpad5 | Close corresponding tool window (Debug) | ✅ | alt+9 | cmd+9 | Open corresponding tool window (Git) | ✅ | alt+numpad9 | cmd+numpad9 | Open corresponding tool window (Git) | ✅ | alt+9 | cmd+9 | Close corresponding tool window (Git) | ✅ | alt+numpad9 | cmd+numpad9 | Close corresponding tool window (Git) | ✅ | ctrl+s | cmd+s | Save all | ✅ | ctrl+alt+y | cmd+alt+y | Synchronize | N/A | ctrl+alt+f | ctrl+cmd+f | Toggle full screen mode | ✅ | ctrl+shift+f12 | cmd+shift+f12 | Toggle maximizing editor | ✅ | alt+shift+f | alt+shift+f | Add to Favorites | N/A | alt+shift+i | alt+shift+i | Inspect current file with current profile | N/A | ctrl+` | ctrl+` | Quick switch current scheme | ✅ | ctrl+alt+s | cmd+, | Open Settings dialog | ✅ | ctrl+alt+s | cmd+numpad_separator | Open Settings dialog | ✅ | ctrl+alt+shift+s | cmd+; | Open Project Structure dialog | ✅ | ctrl+shift+a | shift+cmd+a | Find Action | ✅ | ctrl+tab | ctrl+tab | Switch between tabs and tool window | ✅ |
CustomLinux, Windows | macOS | Feature | Supported |
---|
f7 | f7 | Next difference | ✅ | shift+f7 | shift+f7 | Previous difference | ✅ | alt+ctrl+enter | alt+cmd+enter | Start new line before current | ✅ | shift+ctrl+enter | shift+cmd+enter | Start new line | ✅ | alt+f12 | alt+f12 | Opens and focuses corresponding tool window (Terminal) | ✅ | alt+f12 | alt+f12 | Close corresponding tool window (Terminal) | ✅ | ctrl+shift+alt+j | ctrl+cmd+g | Sublime Text style multiple selections | ✅ | alt+left | shift+cmd+[ | Select previous tab (Terminal) | ✅ | alt+right | shift+cmd+] | Select next tab (Terminal) | ✅ | alt+tab | alt+tab | Goto next splitter | ✅ | shift+alt+tab | shift+alt+tab | Goto previous splitter | ✅ | enter | enter | Open Highlighted File (Explorer) | ✅ | alt+home | alt+home | Jump to Navigation Bar | ✅ | shift+ctrl+c | shift+cmd+c | Copy paths | ✅ |
Go LangLinux, Windows | macOS | Feature | Supported |
---|
shift+f10 | ctrl+r | Go: Test Previous | ✅ |
Installation- Install Visual Studio Code 1.54.0 or higher
- Launch Code
- From the extension view
Ctrl -Shift -X (Windows, Linux) or Cmd -Shift -X (macOS) - Search and Choose the extension
Intellij IDEA Keybindings - Reload Visual Studio Code
Known Issues (IntelliJ Importer)- Refactoring commands are not supported
- Sidebar controls are not supported
- Namepad control is not supported at the same time as numbers
- Intellij's custom keymap is not a full copy of its parent keymap. It inherits unmodified shortcuts from the parent keymap and defines only those that were changed. If you use a plugin like Emacs or Vim, only your changes will be exported in the XML
- Warning output for keymaps that could not be imported is not yet implemented
- Cannot load
settings.zip file directly
Contributing to the CodeClone a copy of the repo: Building the codeFirst, install the package dependencies: Now you can compile the code: - Launch Code
- Edit
src/package-with-comment.json (NOT package.json ) - Run Build Task
Ctrl -Shift -B (Windows, Linux) or Cmd -Shift -B (macOS) - Run Command Markdown Generator
npm run usage - Paste the Command Markdown to
README.md
After the initial compile, the source files will be watched and recompiledwhen changes are saved. ContributorsLicenseThis extension is licensed under the MIT License. References- Source code, Resharper 9 Keybindings, https://marketplace.visualstudio.com/items?itemName=ms-vscode.resharper9-keybindings
- IntelliJ IDEA DEFAULT KEYMAP, https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
- Key Bindings for Visual Studio Code, https://code.visualstudio.com/docs/getstarted/keybindings
- Integrate with External Tools via Tasks, https://code.visualstudio.com/docs/editor/tasks#_autodetecting-gulp-grunt-and-jake-tasks
- gulp-strip-json-comments, https://www.npmjs.com/package/gulp-strip-json-comments
- Icon, vscode-vs-keybindings, https://github.com/rebornix/vscode-vs-keybindings/raw/master/visualstudio-keyboard.png
|