In the world of so many IDEs and text editors, there are two, which always stand out, Emacs and VIM. We know about the world wars that happen between people using them. Never got a winner right? 😛
Having used the likes of VIM, Atom, Sublime, Visual Studio Code, and the sweet IDEA products, I wanted to get back to the basics, and something which is very powerful and configurable. I decided to try Emacs after so much hype.
- Text Editing – Emacs does what a IDE should be best at – text processing. It’s very easy to manipulate text, paragraphs, words, handing regex, search, find, replace text and content.
- Robust & Configurable – Everything in emacs is based on configuration. It allows you to do almost everything using your custom configuration. It has Content-aware editing modes, including syntax coloring, for many file types.
- Buffers/Scratch Buffers – This is the feature I love the most. When you edit a file in emacs, you’re not really editing the file itself, as it sits out on a disk somewhere. Instead, emacs makes a copy of the file, and stores the copy in a part of RAM memory called a buffer. All the changes you make to the file are applied to the buffer. When you save the file, emacs writes the contents of the buffer to the disk. It lets you quickly create new buffers without actually saving them to your disks, which is useful for creating temporary stuff.
- Lisp – Emacs Lisp is a powerful implementation of Lisp which helps writing user customizations and extensions.
- Integration with External Tools – Emacs integrates well with tools and packages, which includes source version control, running make/rake/tests, spawning processes, and even running shell inside.
- Pair Programming – Remote Session – Emacs enables you to easily pair program with your co-developers even remotely.
- Kill Ring – The kill ring is a list of blocks of text that were previously killed. In Emacs, if you kill text in one buffer, it moves to the other, essentially bringing back what you killed.
Advantages & Features of Spacemacs (according to http://spacemacs.org/)
- Mnemonic – Key bindings are organized using mnemonic prefixes like b for buffer, p for project, s for search, h for help etc
- Discoverable – Innovative real-time display of available key bindings. Simple query system to quickly find available layers, packages and more.
- Consistent – Similar functionalities have the same key binding everywhere thanks to a clearly defined set of conventions.
- Crowd-Configured – Community-driven configuration provides curated packages tuned by power users and bugs are fixed quickly.
Setting up Spacemacs
$ brew tap d12frosted/emacs-plus $ brew install emacs-plus $ brew linkapps emacs-plus
Add osx in ~/.spacemacs file to