Maybe emacs users should do more to promote it. Emacs has a reputation of being overwhelming. But we don't promote emacs enough. There are great reasons to learn and use it. I don't think emacs is difficult to learn, there is a great help system and an interactive tutorial to begin.
Emacs does have a ton of functionality. A co-worker asked me about the enormity of the emacs key sequences, not to mention the number of functions that can be run by name. I've used emacs for 27 years, so I'm not the one to speculate on the effort to learn it.
But one thing to remember is that across all the different editing "modes" (for editing this language or that one, or text, or email, or file systems, or what have you) most of the commands are the same and others simply apply the same concept to a specific mode. e.g. what does it mean to go forward and backward by a word or a sentence or an expression or function definition?
See an emacs command summary. I could not quote a lot of these for you without acting out the sequences with my hands. Emacs is now in my physical hand memory.
My favorite emacs function may be "query replace". This function at first may seem not unlike any kind of interactive find-and-replace dialog on a Mac or Windows.
But query replace (found on the meta-percent key combination for those following along at home) is enormously rich. First, query replace will attempt to preserve case in the replaced text. e.g. if you replace "foo" with "bar" and the function encounters "FOO" then you have the option of replacing it with "BAR" and if it encounters "Foo" then the replacement will be "Bar".
What if you want to replace a found match but then edit that particular match slightly differenty before continuing on? (Otherwise you have to remember to go back, and where to go back to, to edit that specific replacement. And what if there are several variations?)
In this case when prompted for a replacement, type control-r for a "recusrive edit". Now you are in a position to edit that specific replacement before continuing with the search for the next match. If you want to do the replace and then review the replaced text before continuing with the next match, do this: type comma "," to do the replace but remain at that spot. You can type control-r to recursively edit the replaced text or do the usual to continue on.
control-meta-c escapes the recursive edit and continues with the search.
What if you made a mistake with the previous match? Either you should have made the replacement and didn't, or you should not have made the replacement. Type "^" and query replace takes you back to the location of the previous match with the text in the state as you left it.
Enough already. Emacs is one helluva tool. There may be other tools with just as broad and deep an array of functions. If you don't have one already, give emacs a try.