Dive into JetBrains IDEs
Appearance
- Appearance: Darcula
- Color Scheme: Colorful Darcula
- Color Scheme Font: 24 for 13-inch display
Keymaps
I use Sublime Text keymap with a few tweaks:
- Basic completion: Tab. With the auto formatting function, I do not need to use Tab to indent. Thus, Tab can be used to trigger completion. And when the completions pop up, I can press Tab again to confirm the completion candidate, very convenient.
- Find Action: the ultimate keyboard shortcut deserves F1 (inspired by vscode)
- Rename variable name: F2 is used for renaming file names in most file managers and renaming variables in vscode. For consistency, I also removed
Ctrl+F2
for toggling bookmark, and bindCtrl+F2
to introducing variables,Shift+F2
to inline variables,Ctrl+Shift+F2
to introduce constants,Alt+F2
to introduce functions (extract methods). - Go to declaration or usage: F4 since this powerful navigation includes the function of "go to source".
- Quick documentation: F5 is near F4 (jump to source). I have poor memory and check documentation and source frequently.
- Go to symbol: F6 goes to address bar in web browsers. Thus I use F6 to navigate. And F6 is near F5 (go to documentation) and F4 (go to source). The default three-key combo (ctrl+shift+R) is too hard to remember and type.
- Find usage: F7 since it is consistent with
Ctrl+F7
(find usage in current file). Although F4 can go find usages at the declaration , sometimes I still want to find other usages when not at the declaration. - Last edit location: F8 since it is near F9.
- Toggle bookmark: F9 inspired by Yin Wang. I also set alt/ctrl/shift + F9 to show/next/previous bookmark. P.S. F2 - F9 are all used for navigation.
- Terminal: F12 since I use terminal a lot and already bind go to declaration/usage to F4. Why not keep the default? Because I want all navigation related actions are in nearby keys (F2-F9). Also, F12 in web browser opens the console.
- Complete Current Statement: C-Enter since I used it far more frequently than inserting a new line.
Fn
I bind frequently used actions to F keys, so they are easier to reach. The "Sublime" field refers to the default keyboard shorts for the real Sublime Text editor, not the Sublime Text keymap for JetBrains IDEs.
Key | Default | Sublime | Me | Rationale |
---|---|---|---|---|
F1 | help | n/a | find action | inspired by vscode |
F2 | next error | next bookmark | refactor: rename | inspired by file managers and vscode |
F3 | next occurrence | next occurrence | next occurrence | convention |
F4 | jump to source | next results in find all | go to declaration/usage | more powerful than "jump to source" |
F5 | refactor: copy | n/a | quick documentation | near F4 |
F6 | refactor: move | toggle spell check | go to symbol | inspired by go to address bar in web browser |
F7 | debug: step into | build | find usage | consistent with Ctrl+F7 (find usage in current file) |
F8 | debug: step out | n/a | last edit location | near F9 |
F9 | debug: resume | sort lines | toggle bookmark | Inspired by Yin Wang. |
F10 | menu (os) | menu (os) | menu (os) | |
F11 | toggle fullscreen | toggle fullscreen | toggle fullscreen | convention |
F12 | go to declaration/usage | go to definition | terminal | Already bind go to declaration/usage to F4 and inspired by web browser (F12 for the console). |
Other Tweaks
- Editor > General > Code Completion: enable "sort completion suggestions based on machine learning".
- Tools > Terminal > Application Settings > Shell path: change from
/bin/bash
to/usr/bin/fish
.