summaryrefslogtreecommitdiff
path: root/content/2023/emacs-as-a-shell.md
blob: 237661315073531f0ad1286b6833d6e209300a2a (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
---
title: "Emacs as a Shell"
category: emacs
abstract: My current understanding of Emacs
date: 2023-04-13T23:38:38+02:00
year: 2023
draft: false
tags: 
- emacs
- shell
- unix
---
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.