I have tried neo-tree and undo-tree. But never really got around to using them well. Maybe, I need to be patient.
Also since I'm going on here, I've found the key to editor management is to make sure certain basics work across the board (for IntelliJ/, Xcode/Xvim, (space)emacs and even vim - sometimes I use vim for config changes since it's so fast to open, tmux, etc).
C-o/C-i -> should work for navigation
ctrl-shift-j -> should select the file you're working on
; -> should map to : (retrain yourself)
fd -> escape (retrain yourself)
c-hjkl -> c-w hjkl (faster window/panel navigation)
gd -> should go to definition
vim text motion in general should work flawlessly
e.g., @q - should start to record a macro
I use spacemacs + tmux since I like to customize and it's easiest to customize in elisp I've found than in any other IDE or vim itself. And when things don't work and I can't make it work in the editor itself, I fix it in the terminal app (Kitty) or the OS (BetterTouchTool).Shameless plug for those curious:
https://github.com/p10q/home/blob/master/.spacemacs#L343 https://github.com/p10q/home/blob/master/kitty.conf#L797
The quick diffs can be pretty darn helpful with complex changes.