summaryrefslogtreecommitdiff
path: root/content/cool-emacs/emacs-as-a-shell.md
blob: 02a2939eaa9c8b7e6e7cdc533073e1bee06b2d59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
+++
title = "Emacs as a Shell"
author = ["Michał Sapka"]
date = 2023-04-13T23:00:00+02:00
categories = ["emacs"]
draft = false
weight = 3001
image_dir = "cool-emacs"
image_max_width = 480
primary_menu = "cool-emacs-appendix"
abstract = "My current understanding of Emacs"
aliases = ["/2023/emacs-as-a-shell/", "/emacs/emacs-as-a-shell/"]
[menu]
  [menu.cool-emacs-appendix]
    weight = 3001
    identifier = "emacs-as-a-shell"
+++

Pavel Korytov writes in his [recent post](https://sqrtminusone.xyz/posts/2023-04-13-emacs/);

> So over time, Emacs has become my programming environment, email client, window manager, knowledge base, and a lot more. I think I ended up using Emacs for almost as many things as possible;

This is where I want to be in the near future. So far I've moved my development environment and email to Emacs. Next up are notes, RSS reading, and music listening.

What I love about Emacs is the consistency between modes/packages. They accomplish widely different things, but the general control scheme is the same. It's great since all TUI programs I use tend to support Vim's way of doing things. Having it all inside Emacs changes the dynamic. I'm trying to think of Emacs as a shell rather than an editor.

What Emacs really is, is a virtual machine running LISP code. Some say that Emacs violates Linux philosophy. I don't see it this way. Does shell violate it? It's also a way to run different programs. Emacs is an abstraction over real shell which adds some calm to it. It's a way to have an interactive layer over OS... which also does text editing.

So, when you look at it this way, Emacs makes a lot of sense:

-   It runs programs. Bigger packages, like Magit, are nothing short of real programs.
-   It's scriptable. Elisp all the way!
-   It allows for interoperability between programs.
-   It runs above basic OS. You can replace your window manager with Emacs, but you need some sort of kernel.
-   You can live entirely inside Emacs, just like you can live entirely inside a terminal.