What is emacs?

Emacs is a free, open‑source text editor that can be used to write code, take notes, manage files, and even run a web browser-all from the same program. It was created in the 1970s and is known for being highly customizable through its own programming language, Emacs Lisp.

Let's break it down

  • Buffers - places where you edit a file or view output. Each open file lives in its own buffer.
  • Windows - split the screen so you can see multiple buffers at once.
  • Frames - the actual OS windows that contain one or more Emacs windows.
  • Modes - sets of settings and shortcuts tailored for a specific language or task (e.g., Python mode, Org mode).
  • Emacs Lisp - a built‑in scripting language that lets you add new features or change existing ones.
  • Packages - community‑made extensions that you can install to add things like Git integration, spell checking, or project management.

Why does it matter?

Because Emacs can become a one‑stop shop for many of the tools you normally need separately. Its extensibility means you can shape the editor to fit exactly how you work, which can boost productivity and reduce context switching.

Where is it used?

  • Software developers writing code in many languages.
  • Writers and researchers using Org mode for notes, outlines, and publishing.
  • System administrators editing configuration files on servers.
  • Academics managing bibliography and LaTeX documents.
  • Hobbyists who enjoy customizing their workflow.

Good things about it

  • Highly extensible - you can add or change almost any behavior.
  • Keyboard‑centric - once you learn the shortcuts, you can work very fast without touching the mouse.
  • Cross‑platform - runs on Windows, macOS, Linux, and even on some mobile devices.
  • Huge ecosystem - thousands of packages are available for free.
  • Self‑documenting - built‑in help system explains commands and variables.

Not-so-good things

  • Steep learning curve - the many commands and keybindings can overwhelm beginners.
  • Initial setup can be time‑consuming - configuring Emacs to your liking may require reading documentation or tutorials.
  • Resource usage - it can be heavier on memory compared to very lightweight editors.
  • Non‑standard keybindings - the default shortcuts differ from most other programs, which can cause confusion.
  • Less mainstream - many teams use other editors, so sharing Emacs‑specific configurations may be harder.