Why Emacs?

I Love Vim

I've decided to make this section it's own post. I appreciate good editors, like Vim.

Emacs!

Emacs has so much to offer, from a healthy package system, complete Vim emulation, Magit, Org mode, Dired, and so much more.

If you are looking for something lighter weight, quick edits... remote in, open Vim. Edit. Save. Done. Vim is there (virtually on every Unix system). It works. It's great.

I use Emacs because it can do anything. It can be anything. It can run Vim, keep notes, manipulate the file system, and so much more...

But, Emacs isn’t for everyone, and Vim isn't either.

Know your tools. If you are happy with your editor and are a little curious, carry on.

What is Emacs?

At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.

In 1976, Stallman wrote the first Emacs (“Editor MACroS”), which organized these macros into a single command set and added facilities for Self Documentation and to be extensible. TecoEmacs soon became the standard editor...read more on Wikipedia.

In 1984, Stallman began writing another Emacs implementation based on the former co-planning with Gosling, naming it GnuEmacs, which became the first program in the GNU project.

"Standing on shoulders of giants" is a metaphor which means "Using the understanding gained by major thinkers who have gone before in order to make intellectual progress." Using Emacs, you're leveraging 44 years of group-think, combined with the progress of so many others.

Emacs has over 10,000 built-in commands and its user interface allows the user to combine these commands into macros to automate work.

Basics

Some of the key binds (keyboard shortcuts) might look strange, here's what they mean:

Meta: M- Command or your "super" key.

Control: C-

So that C-x would be Control key, plus x pressed together.

  • C-x C-c Kill Emacs, save-buffers-kill-terminal.
  • C-x C-e Evaluate the current expression. This is cool, as you can do this on any elisp in your buffer.
  • C-x C-f read a file into Emacs (or create one).
  • C-x C-s save a file back to disk.

Describe

describe is a powerful feature in Emacs that will tell you all the information you need about particulars.

  • describe-function
  • describe-variable
  • describe-mode
  • describe-key

Melpa

MELPA is a growing collection of package.el-compatible Emacs Lisp packages built automatically on our server from the upstream source code using simple recipes. (Think of it as a server-side version of el-get, or even Homebrew.)

M-x: package-list-packages

Packages can be installed without restarting emacs:

package-list-packages or package-install + RET + <package_name> + RET.

Evil Mode

Evil is an extensible vi layer for Emacs. It provides Vim features like Visual selection and text objects, and is the successor to the now-obsolete Vimpulse and vim-mode. Its home page.

evil-mode an advanced Vim emulation layer. Once installed, you can run it via evil-mode and you should have a complete Vim experience, within Emacs!

Packages:

Magit

This is my next favorite thing about Emacs. Like my buddy Adam, I would probably still use Emacs just for Magit. It's that good. magit.

Magit can teach you things you never knew about git. Like --force-with-lease and [why you should be using this as your default push](https://thoughtbot.com/blog/git-push-force-with-lease

Magit, makes git fast and easy.

Others

Theme

Customize

What all these years of Vim has taught me, learn to customize and never stop customizing.

This year, I completely gutted my Emacs configuration and replaced it, line by line, plugin by plugin. It's fast, lightweight, and looks great.

Check it out here.

Resources

A post containing a bunch of helpful Emacs resources!