When I started programming, a lot of the experienced developers would encourage people to use vim or emacs. Some were so enthusiastic that they made it into a badge for being a real developer.
I wanted to be a real programmer, so I set off to learn them. I recall working through the tutorials for both vim and emacs during the 1990s. It was fun; it felt like I was learning a lot. Then I would close the program and keep it closed for months. My heart was initially with emacs, but my computers at the time had problems running it, so vim it was!
Vim was free. Vim was small. After learning how to enter edit mode, how to write to file, and how to exit, I used vim mostly like notepad. I used it mainly for syntax highlighting and search and replace text. It also was useful for matching curly brakets. I used it like this for years. Then I learned how to navigate with the keyboard. Navigating via keystrokes was so useful, that I would install vim plugins in all IDEs that I have used over the years.
Throughout the years, I would learn a vim trick. Then another. I would watch someone using a macro; then I learned how to do it. When I needed some specific editing feature, I would look for it, and sure enough, there was a way of doing that in vim. I started using some plugins like NerdTree for the features that aren't built into Vim. By the time VS Code became popular, I found that I was more productive using Vim than VS Code. VS Code also used a lot of CPU cycles, making my computer hot. Vim kept it cool.
I started looking into Emacs again due to the popularity of Org mode. Adopting org mode was easy since it maps to how I took notes in vim. I installed evil on emacs so that I can keep using Vim key bindings. As I started to play with Common Lisp, I installed Slime to work with it.
I asked for help in Mastodon. Usually the biggest problem when using new technology is not knowing what you are looking for. So I would ask if there were plugins for something similar to NerdTree for Emacs. I was asked if dired
wasn't good enough for me. So I started using dired
.
I wanted to increase the type size. So I learned how to start writing a config file in emacs. One does this using lisp. I am so impressed how easy it is to read lisp.
This is how one learns these complex systems. You use them, you learn something, and you keep using them. If you are stuck, you reach out to others who use it too. The social part is huge, and the community is generaly helpful.