3 ms·
Java is indeed feels like Assembly, compared to other JVM languages, but in large part because of its typed and object oriented nature. I have a very different
by onetom 6y ago
Java is indeed feels like Assembly, compared to other JVM languages, but in large part because of its typed and object oriented nature. I have a very different experience with the JVM ecosystem when using Clojure.
It definitely doesn't "require 800 lines to talk to a REST API" if you use this HTTP server/client lib, written in pure Clojure: https://http-kit.github.io https://http-kit.github.io
I'm primarily developing Clojure software, using IntelliJ and I mostly use the keyboard for it.
Cmd-E for recent file or Tool window (Clojure Deps) switching.
This is what I use the most.
Cmd-Shift-A for the Action Menu, which I use for Window Split Down/Right or Run tests and a couple of REPL commands, like copy the last result to the clipboard or open it in a browser. Opt-Tab to switch between splits. I don't switch between tabs, because I limited the max number of tabs to 1.
Cmd-, - Preferences
Cmd-; - Project structure
Cmd-Shift-O - Open files
Cmd-Shift-F - Search Files recursively in the whole project
Cmd-1 to focus and turn the Project file structure on and off, Cmd-Shift-Left/Right to resize it, Shift-Esc to close it (or any other tool window).
Cmd-9 for version control. Cmd-Shift-]/[ for moving between tabs. Ctrl-V for VCS operations menu, like (1 or just Enter) commit, (7) branch, (8) push.
Reassigned F12 to Cmd-2 to focus/show/hide the Terminal. Esc to switch the focus back to the Editors (which is buggy for years now and registers the Esc key in the terminal, but it's just a slight annoyance)
Cmd-Opt-R to run Clojure REPLs. Ctrl-Enter to eval top-level form or Ctrl-Shift-Enter to eval sexp before caret in the REPL. Cmd-Shift-J/K to barf/slurp, Cmd-' to raise and Cmd-(/[/{ to wrap sexp. Cmd-Shift-Up/Down to move an expression backward/forward within its containing expression. Cmd-/ to comment. Alt-Up/Down for Expand/Shrink selection by syntactical units. Refactoring with Ctrl-T.
Everything else is just opt/shift/ctrl/cmd + cursor keys, space, tab, shift-tab, enter or fuzzy search by simply typing the name of something in a popup list, dialog box or tool window.
These shortcuts cover ~80% of my time using IntelliJ, but I use another 10-20 keybindings, like folding an file structure navigation, which cover 95% of the use-cases.
It's also important to add that my CapsLock acts as both Ctrl and Esc and I'm using the SpaceFn layout via Karabiner Elements (as implemented by the jeebak complex modification). This makes a tremendous difference in convenience when using anything really from the keyboard primarily.