Tag Archives: Emacs

When you mention Emacs on the Internet

When you mention Emacs on the Internet – be it on a blog, forum, mailing list, IRC channel, reddit thread, or tweet – certain responses must inevitably follow.

You were just sharing a bit of news, or asking a question about a feature, or plugging your new webkit-buffers.el library that allows Emacs to really browse the web (somebody write this, please?); but it doesn’t matter. The same responses must always follow:

  • Someone must say “Emacs is a great OS. It just needs a good text editor.”
  • Someone must post a link to the XKCD comic about Emacs. You know, the “M-x butterflies” one. No, I’m not giving you a link to it.
  • Some obviously lost and confused person who has been raised on Visual Studio / Eclipse / XCode or some other bloated IDE wonders incredulously that people still use “those old text editors” for serious development.

And then, of course, the Vi(m) users descend. I don’t know why. I have never, as an Emacs user/fan, butted into a discussion of Vi(m) stuff with my sanctified opinions about it, but like turkey vultures to a possum carcass, Vi(m) fanboys descend on every mention of Emacs with predictable regularity. Their comments vary:

  • Some post lengthy walls of text about how they once tried Emacs and it gave them boils which were only cured by switching to Vim.
  • Some just say pointless junk like “Vim is better” or “Vim FTW!”
  • Some just type “Vim” or “Vi”. Nothing else, no explanation, just that. I don’t get this; it’s as if balance can only be achieved if every mention of Emacs is countered with a mention of Vim. Or maybe it’s some kind of insect-brained knee-jerk response: “I see word Emacs. Must type word ‘Vim'”

bb_emacs_vim.jpg

If anyone takes the bait (and someone usually does), flame wars ensue that span the gamut from Richard Stallman’s personal hygiene issues to RSI horror stories to “the year of the Linux desktop”.

Then some clever person comes along and posts a link to that rant about “ed”, at which point the thread is locked, comments are disabled, or everyone just agrees they’ve got better things to do.

Python Code completion in Emacs — at last!

I’ve been coding Python in Emacs for years now, and for the most part it’s been a satisfactory experience. After experimenting with various python modes and utilities, I’ve had a pretty good environment that marries Emacs editing to syntax highlighting, real-time error highlighting, the ipython shell, linting tools like pylint and pep8, and various other goodies. But the one hole, the one sore spot in the whole works, was code completion. Something even idle can do out-of-the-box was simply beyond my ability to get functional in Emacs.

I’d tried just about every solution the internet could offer: PyMacs, company-mode, anything-mode, ipython completion, standard autocomplete-mode. Everything I tried either gave unacceptable results (like autocomplete-mode, which just scans the current buffer for completion information), or just flat-out didn’t work no matter how many tutorials I followed.

Here lately I’ve been trying to work a lot more on my Pythoning, so I decided to see if the state of the art has caught up with this need. Echo base, I’ve found it. Repeat: I’ve found it.

(more…)

Better window splitting in Emacs

Emacs’ window-splitting functionality is an ergonomic way to view multiple files at once without having to deal with shuffling around floating windows or clicking between tabs. Anyone who does much with Emacs probably knows already that they can use C-x 2 or C-x 3 to split the window vertically or horizontally.

What always bothered me about this feature was that the newly-created window defaulted to the current buffer, which in layspeak means you had the same file or content open in both your new window and the old. The was almost (but not quite) never the behavior I wanted, since usually you split the window to have multiple buffers on screen at once. Typically, I would do this right after opening a new file or buffer to compare with whatever I already had open, so that I would have the old buffer in one window and the new buffer in another.

This is where having an extensible editor rocks; because in Emacs, if you get tired enough of a behavior, you start hacking elisp and fix it…

(more…)

How and Why to dump your Word Processor

The word processor has been a part of computing platforms since the earliest days of the home computer; I’ve used a number them over the years, including PFS-write on the Apple IIc, WordPerfect (both DOS and Windows versions), Microsoft Word, OpenOffice, and AbiWord.

A couple years ago, though, I got frustrated with the whole word processor concept, and found a way to create text documents that works a lot better for me. This article aims to describe the how and why of that move, for the benefit of others who find they just don’t like working with word processing software.

(more…)

Blogging in Emacs, part 2

When I first set up this blog, I attempted to use the weblogger.el extension to blog to this site. Alas, it gave me quite a bit of trouble, so I had to scrap it.

Recently, though, I’ve been trying to get a handle on Emacs org-mode, and noticed an extension called “org2blog/wp”. If it can work, seems like a good way to learn org mode. So, if this works, it’ll be my first post from org2blog. Let’s see how it goes….

(more…)

Emacs 24 is here!

Well somehow very quietly last month the worlds greatest text-editor/IDE/anything-you-can-imagine software, Emacs, got ratcheted up to version 24.  Actually, 24.1 to be exact.  Major version releases of Emacs don’t happen very often (between 2 and 6 years, on average), so I’ve been excited to get my hands on some of the new features.  My first attempts to compile it on my Ubuntu boxes failed, but fortunately Damien Cassou came through with a PPA for emacs24, and this past weekend I found time to upgrade my systems to the new version.

(more…)

Testing Emacs

Just testing my ability to post from Emacs. Test test test.

I’m posting via weblogger.el, but there are some bugs involving timezone offsets that mess with the publishing time.  I’ll see if I can sort those out somehow….