Emacs Pretest 1 Is Available

Nicolas Petton has announced the release of Emacs 26.0.90, the first pretest for Emacs 26. I’ve already been reading very favorable reviews, some saying it’s the best release available.

If you don’t mind living on the edge, you can help the developers out by using and testing it. The more feedback you can give the developers, the better Emacs 26 will be and the faster it will be available.

As always, we owe the developers a huge amount of gratitude for their work in continuing to improve Emacs.

Posted in General | Tagged | Leave a comment

C-q and ASCII in Emacs

LigerLearn has a nice video on using Ctrl+q in Emacs to insert arbitrary ASCII (or even Unicode) characters into the current buffer. The video begins with a discussion of ASCII control characters and the “caret notation” used to represent them.

The video goes on to discuss how Ctrl+q can be used to insert control and other characters into the buffer. That’s really handy when you want to insert a character like a newline (^J) that would normally perform an action.

The video is obviously aimed at n00bs but others may learn something useful too. It’s just under 9 minutes so it should be easy to fit into a coffee break.

Posted in General | Tagged | 1 Comment

Bookmarks, Eshell, and Docker

Fuco1 is really good at investigating how Emacs’ systems work and extending them to better suit his workflow. The latest example of this—or at least the latest that I know of—is his work in extending the Emacs bookmark system. The particular problem he is trying to solve is bookmarking Eshell sessions in Docker containers. That’s pretty interesting if you do a lot of work with Docker and you can check Fuco1’s post for the details.

More interesting to me, however, is how flexible the bookmark system is. You can bookmark whatever you want by providing a couple of functions. One of the functions builds an alist containing all the information needed to rebuild the buffer you want to bookmark. The other function uses this alist to rebuild the buffer when the bookmark is opened. Again, you should see Fuco1’s post for the details.

If you’re like me, you probably never thought much about the implementation of bookmarks, but as usual with Emacs, it’s well thought out and very extensible. If you have some special type of buffer you’d like to bookmark, it turns out to be pretty easy to do. Fuco1’s post is worth reading just to see the details of how the bookmark system works. It’s definitely worth a read even if you don’t have an immediate need to make a new bookmark type.

Posted in General | Tagged | 2 Comments

Unix History

The other day I saw a reference to this great history of Unix. It’s Chapter 2 from Eric Raymond’s The Art of Unix Programming. I hadn’t read it for some time and enjoyed it all over again.

Many—or maybe even most—Irreal readers weren’t around in the early Unix days and they should definitely read this history. It’s an important part of our shared heritage and a reminder that before Linux there was Unix and a wonderful culture that went with it.

Posted in General | Tagged , | Leave a comment

Kontra Nails It on Open Offices

He also points to this New York Times article on office design, which describes a movement away from the strict open plan office concept in favor of more flexible arrangements. As much as I hate the open plan nonsense, I’m not convinced that these new ideas are any less a fad.

Posted in General | Tagged | Leave a comment

Org Mode Completion

By far the most useful weapon in my Emacs efficiency arsenal is abo-abo’s Ivy library and associated utilities. Everything from simple string searches with swiper to finding files with counsel-M-x is easier and faster than before. Therefore, when abo-abo suggests a way of improving efficiency, I pay close attention.

In a recent blog post, abo-abo writes about extending completion-at-point for Org mode. It turns out that there is a general purpose command, complete-symbol (bound to Ctrl+Meta+i by default), that will complete the symbol at point depending on context. To do this you need a function that completes symbols in the current major mode. Some modes, like Elisp mode, have functions provided by default but, sadly, Org mode does not have any predefined.

Abo-abo’s post provides three functions that ease his workflow. The first completes ASCII marked-up symbols like this. The second takes care of completing file names and the third handles references. These functions are all pretty simple and offer excellent go-bys if you want to write one to optimize your work flow.

This is a great post and definitely worth the 5 minutes of your time that it will take to read it.

Posted in General | Tagged , | 1 Comment

Emacs for Everything

Over at the Emacs reddit, ambrevar has a nice essay entitled Emacs Everywhere. This essay is a followup to his previous essay on Eshell that I wrote about previously. In it, he describes why he moved almost all his computing tasks into Emacs and why he resisted doing so for a long time.

Ambrevar is an adherent to the Unix philosophy that programs should do one thing well. Given that, he reasoned, why would he want to do everything with one program? Over time, though, he came to realize that one could view Emacs as providing a user interface for “back end” programs that adhere to the Unix philosophy. This makes even more sense if you consider back end programs to include Emacs packages written in Elisp. From this point of view, handling your email from within Emacs with something like mu4e is not a matter of Emacs doing too many tasks but rather of Emacs providing a consistent user interface that allows one to work more efficiently.

The bulk of the essay discusses the advantages of moving as much as possible into Emacs and lists some of the standalone apps that he’s replaced with something equivalent in Emacs. He even uses EXWM to make Emacs his system window manager. As a Mac user, that option isn’t open to me but I don’t really need it: I spend almost all my tube time in either Emacs or Safari. Both run in full-screen mode and I have function keys to switch between them easily from the keyboard.

Whether or not you’re an Emacs user or have advanced to moving as much as possible into it, you will probably find ambrevar’s essay interesting. Definitely worth a read.

Posted in General | Tagged | 1 Comment

Org Mode 9.1.2

Bastien brings us the news that Org Mode 9.1.2 is available.

It’s a bug fix and is already on Melpa if you like to stay up to date.

Posted in General | Tagged , | Leave a comment

Working With Log Files in Emacs

Lee Hinman over at writequit.org has an excellent post on working with log files in Emacs. By “log file” he really means “structured text” so, for example, most of his techniques work for things like JSON as well.

The post is fairly long so I won’t try to summarize the whole thing but it’s interesting how many built-in Emacs functions can be brought to bear on the problem. Everyday things like keep-lines, occur, and narrowing can make a big difference.

Hinman also talks about 3rd party packages that can help. One such package is View Large Files (vlf) that allows Emacs to gracefully handle huge files. That’s especially important for log files that can be multiple gigabytes in size. Read Hinman’s post for other useful packages and ideas for dealing with log files. It’s a very useful post.

Posted in General | Tagged | Leave a comment

Doubleclick Whines

The IETF has a new draft standard on browser cookies and Doubleclick is whining. The standard would eliminate—or at least make more difficult—the ability of Doubleclick and other advertisers to deposit tracking cookies on our machines. If you aren’t in the adtech business, this is great news.

It is, I know, unseemly to take pleasure in the misfortunes of others but these miscreants have earned it. We’ve asked them and asked them not to track us. We even had a way of requesting this built into our browsers. The adtech industry told us to take a hike and continued tracking us. Therefore, unseemly as it may be, I’m finding this news schadenfreudelicious.

Posted in General | Tagged , | Leave a comment