Emacs is a very powerful editor. Much more powerful than anything I have
And it is the kind of tool that begs to be extended.
If you need Emacs to do anythning, you can just write a emacs-lisp
function that does that.
You have some core concepts, and a lot of lisp functions that you can
use when they are needed.
What most people call the “window” is called the frame, and a window can
be divided into any number of windows. Then you can open buffers(files,
unsaved files or interactive buffers like shells and repls or even user
interface and small applications). Then you can place any buffer in any
window. This is much more powerful than the usual files and tabs
metphor. It also enables you to do some interesitng stuff like having
multiple windows with the same file; useful if you need to look at the
top while editing the bottom.
Emacs has some very powerful keyboards shortcuts. Some of them are
configuration depended; or all of them are. And some of them depends on
the mode emacs is in. You can add modes for dealing with certain file
types. The keyboard shortcuts might be the same or very similar for
building / compiling source code, but the code behind the mode takes
care of what to do.
The core of the power of emacs is Emacs Lisp. It is the programming
language most of emacs is written in. And all extentions to emacs is
written in. You also use to configure emacs. The idea is that when you
run a keyboard shortcut, it is just running the lisp function that
shortcut is mapped it. And you can also enter Emacs Command mode and
just run any command available.
And it is very easy to add your own, you just have to define it in a .el
file and load it in your config. If you for example want to be able to
post to Twitter from a emacs buffer, you could just write or find some
emacs lisp function for doing that.