summary refs log tree commit diff stats
path: root/note/emacs.html
blob: 84eb28552c0a3dc3ae323ca642cfdd0a409e97b3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
	<head>
		<title>A Few Problems with Emacs</title>
		<link rel="stylesheet" href="/style.css" />
		<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
	</head>
	<body>
		<h1>A Few Problems with Emacs</h1>
		<p>
		<a href="https://emacs.org/">Emacs</a> is supposedly a text editor but is more of a integrated computing environment.  At its core is an Emacs Lisp interpreter and a text and buffer-oriented set of conventions that Emacs Lisp code follows.  The ``default''/``standard'' build of Emacs contains a World Wide Web browser, newsreader, electronic mail client, Internet Relay Chat client, a few games, and overall a ton of stuff that I do not use, need or want in my environment.  Therefore I use a minimal-ish custom build (i.e. simply leaving stuff out during <code>./configure</code>, which makes me feel a bit better.
		</p>
		<p id="space-based-alignment">
	        One problem that I've recently noticed with Emacs is the tendency to use a set amount of spaces, expecting a monospace font, to align items across a buffer.  For example, when <code>:tags</code> are used with <code>org-agenda</code>, the agenda page aligns the tags to the right of the page with spaces precalculated from the window size.  But when we have double-width unicode characters, for example Chinese characters in the mix, or if we are using a variable-width Latin font, the alignment is completely screwed up.  Resizing the window also doesn't update the wrapping and alignment of items inside.  Emacs's text buffer-centric design makes it really hard to do otherwise.
		</p>
		<p id="core-written-in-c">
		...
		</p>
		<div id="footer">
			<hr />
			<p><a href="/">Runxi Yu's Website</a></p>
		</div>
	</body>
</html>