Emacs Chat: Xah Lee (ErgoEmacs)

I chatted with Xah Lee about how he got started with Emacs, how he’s customized it, and other tips he can share for people who want to learn more.

Want just the audio? You can download the MP3.



Sacha: Hello and welcome to another episode of Emacs Chat. Today we have Xah Lee from http://ergoemacs.org . He'll tell us lots of interesting things about custom keyboards, keybindings, publishing with Emacs, and so forth. Xah, hello and thank you so much for joining us, and thank you as well for all the work you've been working on for Emacs. Before I dive into this whole Emacs thing, tell us a bit about your life outside of Emacs. What are you interested in?

Xah: Okay, I'm a big nerd so I'm interested in math. I want to be great in math. Basically math and programming, and that's about it.

Sacha: Cool. I was looking through your config earlier. It has lambda symbols and epsilons and all that stuff, so it would be great to hear more about you [talking over each other 00:54]

Xah: Yeah, Unicode. I love those math symbols, yes.

Sacha: So, [coming back to] Emacs. You've been using Emacs for a really long time, I think. I rememeber running into you when I was starting Emacs, years and years ago. What got you interested in Emacs in the first place?

Xah: That's an interesting question. I remember you in 2006. That's the first time I saw you. I don't know if you remember but I saw you on IRC.

Sacha: Yeah, I remember that.

Xah: I got into Emacs around 1998. That's when I started to do web dev. I started to learn Perl actually–Perl and UNIX stuff. I got into Emacs because of UNIX; they are kind of together because Emacs is usually on UNIX. It's just fascinating because I'm interested in the history of computing, so UNIX is a big, big player there. I just read about [Emacs] in UNIX history, and also Lisp history. I remember there was an O'Reilly book on Emacs, and especially Free Software. Well, Emacs and GNU, the gnu head (the animal). So I thought, "What kind of strange thing is that?" I looked in the preface, and lots of places they have GPL manifesto of the Free Software Foundation. I thought, "Hmm, this is odd, I don't know what that is". So eventually I learned UNIX, and I worked in the web dev ecommerce field. I started to use Emacs [around] 1998 almost. {? 02:38}

Sacha: That's a long time ago.

Xah: Yeah, that was the dot-com days–the good old days.

Sacha: What's kept you interested in Emacs all this time? I can't even do the math any more. What have you liked about it?

Xah: I guess the geekiness is part of it. It's got the entire documentation. Well, they call it the self-documenting… well I'll have to look at the Emacs manual ["the extensible, customizable, self-documenting, real-time display editor"].

So, I began by reading the tutorial in Emacs C-h t, like everyone else. I would just flow through and read everything. One important thing about Emacs is that I love it because it's Lisp. I have programmed in Mathematica before, and I'm interested in artificial intelligence and all that computer science stuff. I heard about Lisp. It's heavily associated with artificial intelligence, but it's in Emacs! So that's why I had a strong attraction. I started learning Emacs and I wanted to learn it really well.

Sacha: You've customized Emacs quite thoroughly. For example, with ErgoEmacs, what got you interested in changing all the keybindings and really changing how Emacs works for you?

Xah: I started customizing only four or five years ago. The first five years of Emacs, I pretty much didn't do any customization at all. Yeah, that's strange I know. I also didn't even know Lisp. I started to learn a little bit of Lisp from 2006, but before that 1998 to 2006 was pretty much all in terminals. I followed everything by the default keys. For the keybinding, I think I started because, back in early 1994, I started using Dvorak. I know you also use Dvorak. You type so fast! Like 117 wpm or something like that, I read. My best speed on QWERTY back then was only around 90 wpm.

Sacha: Which is pretty good, you know. A lot of people would love to be able to type at 90 wpm. If that's how fast you were on QWERTY, how fast are you now in Dvorak?

Xah: Oh, my Dvorak is not very fast. The last time I tested, maybe 90 would be the maximum. If I wanted to go beyond 90, I would have to practice for a month or so.

Sacha: When it comes to programming, the bottleneck is not really typing speed. It's how fast you think, and I'm very slow at that. laughs

Okay, so you changed keyboard layout. But then you still continued to use Emacs with very little customization for eight years… and then what got you interested in learning Lisp and customizing it further?

Xah: Around 2006, I discovered IRC, I know it's much older than that, but I didn't use it until 2006. I joined #Emacs IRC group. There are a huge amount of things I don't know. When I went onto #emacs IRC, I was thinking, "I know all these things, I've been using Emacs for five years." But they are just constantly saying things that [make me think] "Oh, I didn't know that and that is useful", so that got me started learning Lisp. "This is something useful you can do this way." So I started to put in my [init?]

Sacha: [So you were] seeing other people's questions or talking about the functions that people are using. How do you go from borrowing small snippets of other people's config to writing a whole lot of customizations to really change things around?

Xah: I guess that happens gradually. Before, I thought, "I don't want to put stuff in my init[?]". You get into this Emacs mindset. It's like a black hole: you're going to spend all your life in it. I know I've read people–they customize Emacs this and that–but I was thinking, "I'm not going to do that. This works for me. Plain Emacs is just fine."

But beginning in 2006, I started to do that [(customize)]. So it was gradual. It began with writing notes. I started my Emacs blog about that time too. I wanted to write a lot of math symbols, Unicode… Unicode was not that popular at that time. You have to work out how to get Emacs to display that many symbols. So I did that, and I posted it on the Web. Small notes began that way, and it just grew larger.

Sacha: Your blog… how does your blog work? I think it's just HTML?

Xah: Yeah, I write raw HTML. Back in the 1990s, I used MS Word, but I decided to just write raw HTML. Then with Emacs, I still start by typing in raw HTML. Then there's the HTML mode that's the default basic mode. There are some commands there for inserting various tags. I used that very well, but gradually I found it inadequate. I wanted to add some other tags it doesn't have. The Unicode for that is pretty simple, so I started to write that. Then it just grew. I wanted to have it so I could just press a key and delete a tag or find a nested tag. It just grew.

Sacha: You've written hundreds and hundreds of pages about Emacs, so it's quite interesting to go through your archive.

Xah: Thank you. It's a habit. I got sucked into Emacs.

Sacha: You're constantly learning about Emacs. What are some of the resources you use to learn more? Where do you find all these interesting things that you write about?

Xah: In the past few years, I haven't really read much about other people's work. Before that I was in the IRC. IRC is very helpful. There are other resources like Emacs Wiki–that was very helpful–and the Emacs manual. The other important resource for me was newsgroups. gnu.emacs.help, I think, and before that, comp.emacs. So I spent a lot of time there. And also, arguing about Emacs stuff!

Sacha: Yeah, you're quite a controversial person in the Emacs community.

Xah: I know. laugh I am sorry.

Sacha: No, no, it's good for some people to have strong opinions about things because then everyone gets to think about that. One of those controversial things that people are curious about is changing all these keybindings, and changing how Emacs works. But before we dive into that, I was curious about the custom keyboards that you've also been playing around with.

Xah: Yes, I was meaning to show you that. I am using this keyboard <holds up keyboard to camera>. It's called, Truly Ergonomic Keyboard. It has mechanical keys. They use Cherry MX Brown. It's totally symmetric. This is the new one, the one I have <points camera to a similar keyboard on Xah's desktop>–that's the one I'm using. I have a video on Youtube that you can look at where I introduce this keyboard.

In the past three years, I've had some problems with RSI. So I looked around and tried to find out about keyboards, what's good and bad, and tried to improve the situation. I got this free actually, and I love it. There's also Kinesis and Maltron. Recently, there's Ergodox. Those are great. I like symmetric ones. I used Microsoft 4000 or Microsoft Natural before.

Sacha: There's certainly a lot of innovation going on in keyboard design too. It's great to see people coming up with different designs and trying them. I see you are taking advantage of all these differt keys in your keyboard bindings, the new [inaudible] keys.

Xah: It would be great if I could… is there a package where I type something and it shows on the side what keys you type? I know there's one they use in vim golf.

Sacha: I haven't actually looked up one for showing the keystrokes yet. I'm sure someone must have written one.

Xah: In lots of Emacs tutorial videos, they use that. They show the keystrokes.

Sacha: I'm going to look at list-packages. By the way, if anyone listening knows the name of this package, you can use the Q&A to tell us which package that is.

Xah: I installed it for a while, I think it's vim [inaudible]. I know who knows, Phillips, and maybe one of the… you might have interviewed him before. They are all Emacs gods.

Sacha: You mentioned that you had some interesting things to show us. Your config is a very large one, so I guess we don't have to walk through the entire thing. I went through it this afternoon and I was stealing little bits for my own config. What are some particularly interesting ways you've customized Emacs to fit you?

Xah: I know you were going to ask about init files so I have somme things here that I prepared to show you, if we can share screens. Great. I want to show you.. most of the time today [inaudible]. I spend a lot of time writing blogs. This is my Emacs blog.

Sacha: Is this your todo list as well?

Xah: Yeah, kind of. I commented that out. It's for tomorrow, and the next day, about my Emacs blog. So let's select down and uncomment it. In any case, I want to show you these commands.

Say I want to capitalise this <highlights a title> and I call this command <title becomes capitalised>. Notice that "for" is not capitalised, it capitalises for a title: "for" is not capitalised [in titles], "of" and so on. Okay so this one… so I press the key… so that command is xah-remove-html-tag {CHECKIT}. I just removed HTML tags there, and I press another key to make a list out of it and that is "that", lines-to-html-list {CHECKIT}. Stop me or ask me any questions, because otherwise, I'm going to go into a monologue.

Sacha: No, no, I think it's really interesting how you've come up with little functions that transform the text. I've been using M-c to sentence case a string, but I have to go and fix "for" and all these other things. That's great. And obiously the way you've rebound <tab> <backspace> to do something interesting, that's cool too.

Xah: How do you know? How did you know I used <tab> <backspace>?

Sacha: When you did describe-function, it shows the keybindings.

Xah: Okay, okay, right.

Sacha: So you can cycle through the different ways of formatting the lines…

Xah: Most of these commands are also in ErgoEmacs. I've used it for several years. David Capello, who joined in contributing that code–he made a huge amount of contributions. Before it was just a set of global keybindings, it was not a major mode at all. Then David Capello made it into a robust major mode. Then last year, about January, Matthew took over, and he added a ton of things. So it's really fantastic now. Unfortunately though, this keyboard doesn't have big Alt keys on both sides so I stopped using the mode. I started to use my own, for this keyboard.

Sacha: Yes, it's funny how the keyboard really influences how we work. One of our viewers says, "Relating to Dvorak and the Truly keyboard, the third layer of the Neo layout is really good for programming." So more layouts, and more code. Anyway, back to Emacs.

Xah: Where was he, on IRC or something?

Sacha: Oh, people can use the Q&A app to ask questions. I keep an eye on that and I'll bring their questions up when I see them.

Xah: If I click on that, it will show?

Sacha: Not any more, because I've just marked the question as answered. But yes, that's where it would show up.

Xah: {reading his notes} What does that mean? I don't know? laughs I write a lot of my own commands, but a lot of these are in other packages, or part of Emacs. Whenever you recognize something, mention it, and remind me. clean-white-space is one of those, it just deletes all the double blank lines. Emacs has a similar…

This is my init, it is on github. Oh, this one is cool! I go to an image directory. So this is all images, okay, this is my Truly ergonomic layout {image of xah's keyboard} so that's an image. If I want to scale it, I press a key and call start-direct-scale-image {checkit}, let's say 50%, let's say 20% thumbnail, sharpen, yes. Okay, success! Success! Now I call dired-jump to go to the file location, and I refresh and you can see it's this one.

Sacha: So it calls Imagemagick or something like that behind the scenes.

Xah: Yes. It basically just calls the shell command imagemagick. I have all this in a tutorial format on my website. If you just search "dired scale image" on http://ergoemacs.org , I think you'll find it.

Sacha: It must come in really handy when you're putting screen shots on your blog.

Xah: Yeah, that's right. I do that all the time. This one… I don't know if you have seen it, probably. I mean, all these aren't my files, I'm just mixing [inaudible] into them. Here is Richard Stallman and Julian Assange. Have you seen this?

Sacha: No.

Xah: This is from last year. I guess Richard Stallman went to the UK to meet him, so they took a photo together. That's the kind of thing I might need to make a scaled version of, or whatever, so I created those commands.

Sacha: And then you use SCP or something like that to copy it over?

Xah: SCP?

Sacha: Sorry, SSH or rsync to copy the files over?

Xah: Yes. This is my Emacs blog, right? So I write it. I can press a key to preview it. Right now, it's garbage. Let's say I want to write this, use this… fantastic! {things happening on screen}

Sacha: I was looking at your config. I saw how you have some code to translate the corner brackets into mark-up. I was wondering because your webpages always have the Ctrl and x and all those things individually marked up.

Xah: Yeah. I want to show you that. So, for example, let's say the key is C-x f whatever that is, I want to press that so that key is.. "that".

Sacha: You just insert the Unicode characters into it, and you use all these keybindings to make it easier to wrap the text.

Xah: Yes, for example, this one… I want to press another key. This becomes formatted into code. I started to use Unicode in my command names.

Sacha: You have all these conversion functions that actually have arrows in their names.

Xah: Yeah. So, I press another key, and this key gets turned into what you would see on my Emacs blog. {things happenig on screen} Let's view in browser, and it became this nicely formatted thing.

Sacha: I was wondering how you did that. Basically, when I'm writing my posts, I use org mode. I use the equals sign a lot to say, "okay this part here is going to show up in a fixed-width font." You have so much more distinction between the different posts because you're using Unicode when you write it, and then you [map] it to specific tags.

Xah: Yeah, I try to use Unicode. Most of these are not that consistent, like a system. I just built them one by one over the years, and I keep changing them.

Sacha: That's actually something I'm curious about, because a lot of people also… We build our config up one by one, but it's hard to keep it all organised. I see that you've actually split up your config into multiple files, and you've worked on having a consistent keybinding approach to it.

Xah: Yeah, my config… Mostly I'm the only one who uses it, so I change keybindings almost every week.

Sacha: Really? Wow!

Xah: I have to think about if something is 0.0001% more efficient, then I must change to that.

Sacha: I have a hard time remembering the keybindings I set. I'm trying to use M-SPC for ace-jump-mode and it's still hard to get used to it. And that's only one key binding! You're changing a lot more.

Xah: I almost use none of the default keybindings. The only ones I use are the four arrow keys and F1 and C-h. That's about it. Okay, also Page Up and Page Down. Everything else is my own choice.

Sacha: So how do you practice using the keys for things you use less frequently, and what happens when you sit down to use somebody else's Emacs?

Xah: Oh I freeze, like, I don't know what to do. If you take out my keybindings, it's like I'm starting to use Wordpad. So, you have to give me ten or fifteen minutes to set up my keybindings. I don't know how that would work out if you were working in a company.

Sacha: Mark (inaudible) says, you can use mwe-log-commands . I'm guessing that's a package, or maybe it's built in. That shows keys and commands as they're typed.

Xah: That's not default, right? That's a package?

Sacha: Oh, for me it's mwe:log-keyboard-commands. Hang on a sec…

Xah: I saw it in list-packages.

Sacha: Okay, so it is a package. It says, "log keyboard commands to buffer". That's cool. I should use that. That's excellent!

I really love the fact we have package repositories and MELPA and Marmalade–just lists and lists of interesting packages to try.

Xah: Yeah, MELPA and Marmalade… So many. It's fantastic.

Sacha: So, you've extensively customized your keyboard shertcuts but even then you keep changing them, and somehow you just remember everything.

Xah: Yeah, it's become an obsession. Even for me sometimes it's painful, because… for example, let's say there are two keys for a command, two choices, one involving a Control, and another one that involves F1. Let's say you press F8 8 9 sequence. I have to think about it, do analysis to see which is really better. Then if I decide that one is better, I try to put it in my init. That's really frustrating because after I change my habit, every time I need to use that command, my fingers are still used to the old binding. Sometimes after a while I decide it's a good change and I get used to it, but sometimes not. Sometimes I have to think about where my analysis went wrong, or is it just a habit that I can't throw off yet. It's kind of like that.

Sacha: Sometimes I have to unbind the previous keybinding just to force myself to use the new one. It's tough changing your habits.

Xah: Yeah, it is. I remember when I was learning Dvorak… I was a QWERTY typist. It was extremely painful. It took me two months to barely be able to type again. How long did it take you?

Sacha: It took me about a month of really slow typing, but it was summer so I didn't need to type that much. I could stay in Dvorak more often. That was helpful.

Xah: I see. Do you still use Dvorak? Or do you use both?

Sacha: I mostly use Dvorak. Even on other people's computers, I'll use AutoHotkey to change it quickly, so I can type without having to think too much. I can still type on QWERTY. I'm just less happy doing it.

Xah: That's amazing!

Sacha: You lost your [ability to type on QWERTY]?

Xah: I kind of lost it, because I haven't had the need. Every time I went to the library in the nineties, I'd have to hunt and peck. People must have thought, "That guy doesn't know how to type." Around 2000, sometimes I had to type on other people's keyboards, so I picked up a bit of QWERTY again. It was around 30-40 wpm, and ever since, it has stayed there. If you asked me to type QWERTY now, it's probably going to be 10 wpm.

Sacha: For me, it's really dependent on the keyboard I'm using too. For example, I'm very used to typing Dvorak on my laptop keyboard, and now my desktop keyboard. I was trying to help someone with Emacs and he was on a Mac, and he was in QWERTY, and he was in evil-mode. Even though I use vi and I understand the keyboard shortcuts, my brain just couldn't handle all those changes all at the same time.

Xah: You use vim as well?

Sacha: Sometimes, but very rarely. Most of the time I already have Emacs open. Maybe if I'm SSHed into some place and I'm not opening something through TRAMP, then I'll use vim.

Xah: How is evil mode?

Sacha: I don't know. Evil mode is very popular these days because people are coming over from vim, and also because people like command mode. Doesn't ErgoEmacs have a command mode?

Xah: Yeah, I certainly use that. Matt, he did great work. Right now [ErgoEmacs] is using a new engine, but it's there as well… but you have to ask them what the command is to invoke that, because it has evolved over the years.

Sacha: I'm still in mostly Emacs bindings, except the parts I've changed, and sometimes I can't remember what I've changed. I've been using John Wiegley's bind-key package. That lists all your personal keybindings. Also, it shows you what that keybinding replaced, so when you're trying to tell someone else what keys to press, then you realise it actually only works for you.

It also has a slightly cleaner syntax for keybindings. You notice it no longer has the kbd macro around the actual key. You can tell it to override everything that uses that key.

So, keybindings are one of the things you've customized, and you have a lot of these little functions to make your HTML publishing easier. Are there any other particularly interesting things you're doing with your Emacs?

Xah: Let me think… no I don't think so. I remember your video where your guest was chatting about music or something. No, I don't have anything like that.

Sacha: One thing I was going to ask is that you're using tab for a lot of your keyboard shortcuts. Do you still do indenting, or do you just not care?

Xah: I'll show you how my key works. I stopped using any chord keys as much as possible. At one point I didn't even want to use the shift key to type anything any more.

Sacha: I saw! You have a lot of translates there that use three characters to type in a shift character.

Xah: Yeah, I commented it out. Every time you make a change like that, it's at odds with the normal library. It gets harder and harder. My binding is already completely unrecognisable. Anyway, I don't use chords. I use key sequences. One of the keys to start it–the "lead key", I think that's what evil mode calls it–one of the keys to start it is the menu key. menu keys are global. The other one for me is tab. I chose tab because you only have so many keys. Tab is for {demo on screen?} This command just adds brackets… menu… I highlight it and press the key, and it becomes that. Then I select this and press a key and it becomes that… So now it's ready to be published in HTML.

Sacha: I should add more Unicode to my blog. [laugh] You look like you're having too much fun with it.

Xah: Yeah, it's so much fun. I haven't really looked into it much, but I think Emacs is the best Unicode tool to get information or whatever. You can code this command [audio distorted] and it will tell you everything about the Unicode.

Sacha: I remember I came across C-x 8 RET and then I was like "holy cow, we have a snowman in here!" So you have your menu for global keybindings, and tab for mode-specific ones. [Xah types the snowman unicode character (☃ hehe)] Yeah, there you go, snowman. [laughter]

Xah: So menu is the lead key for global, and tab is for mode-specific. My plan is that every time I use a mode, any special command or key in that mode, I pick out what I want to use and set my key for that. All this is not really planned out. Gradually I do a bit here and there. I'm pretty sure it's not robust. If one day I have to write in a lot of different languages, I don't have time to look at that package, and all the keys it uses, and decide which ones I want to change. That's just going to be cc {?}

Sacha: I guess maybe that's also where you might say, "I'm going to remap these keybindings to these other keybindings, so that in general, anything that's bound to this…"

Xah: Yeah.

Sacha: You tend to add these keybindings a little bit at a time, but somebody installing ErgoEmacs has to deal with all these different key bindings right off the bat. Do you have any tips for people who are trying to optimize their use as well?

Xah: ErgoEmacs is fantastic!

Sacha: But it's also hard for people to learn!

Xah: Yeah, I know. Matthew Fidler is doing the work now, so there's a lot of things there. Right now it tries to be compatible with everything. It actually has an engine. It doesn't directly specify a key. When you press a key, it goes into whatever mode you are in and finds any incompatibilities.

Right now, there are tens of files. I don't really know how it works these days. It's very complicated. It's on Github.

Sacha: So it doesn't actually force you to learn everything from the begining. You can go into it slowly.

Xah: Let's see if I can turn it on. I have my init… no…

Sacha: Never mind. So everytime you notice a modifier key, you just add a new keybinding and go from there. I noticed you have a function that makes it very easy to open different files that you've recently accessed, so that probably makes it even easier to add new keybindings.

Xah: That's the… Let's say I close my Emacs blog. Now I want to reopen my Emacs blog. I press this key, and it gives me a list of recently opened files.

Sacha: I've been using registers for much the same purpose, but the problem is I have to use single character shortcuts to jump to them and I can't overwrite anything in the register. Having a command that prompts you might be the better way to do it.

Xah: I was using bookmarks, but the issue I find with bookmarks is that there is no key that lets you open one specific file right away. You have to navigate down to it first. Do you know what I mean? That's one thing that got me started to do the one I use now. Another one I use really often is the open recent… recentf. It shows the top ten most recent files.

Sacha: I should totally try that.

Xah: You can just press a number and it will jump to that. I hardly use find-file anymore, because you have to type the path.

Sacha: When I was reading your config, I was looking around for keys to bind to some of these sequences. I realised my apps key is completely unused. So I can start binding more things.

Xah: You are on your PC keyboard?

Sacha: Yeah, I am. I actually use the Windows key a lot, so it has to be the apps key.

Xah: Oh, I see.

Sacha: This is all good. Keep an eye out for keyboard shortcuts and keep tweaking things to make them even easier to use. I really like the fact that you have all these little functions that just do that job or prompt for more information, and then take you to places to fix things. That's very cool.

Before I forget, one of the things you mentioned in our email conversation, was the Chinese Emacs community. I don't read Chinese. I read a little bit of Japanese. I know from searching on twitter, there's a lot of conversation that happens in the non-English Emacs communities. What's it like in the Chinese Emacs community? What is popular? What am I missing out on by not reading Chinese?

Xah: Not much actually, because after all it's Emacs, it's in English, or the engine is in English. In the last few years there have … there are a lot of programmers and companies there, so I was actually surprised… in late 2008 or something, there were a lot of Chines people on comp.emacs or gnu.emacs.help. I saw all these Chinese names. Some of them write really excellent packages – non-trivial packages. That's how I started to find out about Chinese people using Emacs.

So let's see, what can we talk about? They are just the same as here, asking questions. Some use Emacs, some use vim. The other thing in the Chinese programming community is that there is a huge amount of copying and translating info. Like here we have Techcrunch, or news media or Emacs blogs. You often see that translated into Chinese just by somebody who posts it on some website with their own ads. Most of them also read English, but I think Chinese is still more natural for them. I try to write Chinese sometimes, but my Chinese typing is super slow.

Sacha: Well, that's great to bring more people into the conversation.

Xah: Yeah, there is one thing… I believe EmacsWiki also supports Chinese, so there is some Chinese in EmacsWiki. Some people in China also have a dedicated Emacs website.

Sacha: Yeah, EmacsWiki is available in multiple languages. That's nice.

Xah: I would have to find out what the URL is…

Sacha: It's good to see it growing in popularity, and people having all sorts of interesting conversations. I know I often use Google translate just to get a sense of what they're talking about because it all looks so interesting.

I've picked up a lot of tips from our conversation. Things like customizing keyboard shortcuts, playing around with things. Maybe someday playing around with some of those keyboard designs you're looking into. That might be interesting for a lot of people also.

What's next for you? What are you curious about, or what do you want to tweak Emacs to become?

Xah: I hope Emacs can grow – the Emacs software itself. Some people are suggesting using Guile to replace Emacs Lisp. I think that would be a great step. I don't know how good it is. There is always controversy about how good it is. Emacs has been around for a long time. A lot of people, especially younger people, are not familiar with it and they aren't going to bother. Anyway, I hope the Emacs Lisp engine improves and gives us lots of functions – features comparable to, let's say, Ruby or modern languages, or even Common Lisp. Instead of each of us downloading packages, I hope it will all be in Emacs for good, in the future.

Sacha: I know that even with Emacs Lisp as it is, I still haven't even reached anywhere near the limits of it. But it's great to see what people are doing. I'll be talking with someone who's working on the foreign function interface, and other people are working on getting {inaudible} into Emacs. We'll see where it goes. In the meantime, I'm really glad you've been writing about Emacs for so long, and you have so much out there. You've put together a tutorial that people can actually buy and download and read through, and I hope that gets a lot more people into Emacs Lisp as well. And, hey, y'know, since RSI is an occupational hazard for us, that reminder that you don't have to put up with keyboard shortcuts that have you press four or five keys at the same time. No, you can just do one after the other. That's a useful reminder.

Okay, any last words for Emacs Chat listeners? Any recommendations for people you would like to see on this podcast thing?

Xah: Oh yeah! You've already interviewed most of them. It's hard to think of one right off the bat right now. You plan to have a conversation with technomancy, right?

Sacha: Yes.

Xah: Phillips, that would be great. {inaudible} Who else? I don't know… oh yeah, the current two leaders of Emacs: Stefan something and… I don't know, I think he's Chinese. The current two maintainers of Emacs. That would be good.

Sacha: I will work up the courage, but in the meantime it was good to hear your story. Great to hear about how you got into Emacs, how you started customizing, and the fact you went eight years without customizing it.

Continue to have fun, and thank you so much for joining us. I'm going to end the broadcast now. To everyone who tuned in, thanks for listening. The recording will be available on the event page shortly after I end this, and also I'll be putting it up along with the transcripts (eventually) on emacslife.com.

Xah, where is the best place to find you online?

Xah: Twitter, @xahlee is my handle.

Sacha: See you all. Thanks.

Xah: Thank you so much, Sacha.

Sacha: Bye.

Xah: Bye.

Check out Emacs Chat for more interviews like this. Got a story to tell about how you learned about or how you use Emacs? Get in touch!


blog comments powered by Disqus
Back to top | E-mail me