Emacs Slack



Emacs-slack users - is there any way to avoid creating a brand new Slack App devoted to a single user's emacs? I recently started using emacs-slack at work and I love it, but in order to use it I had to create a new Slack App attached to my team at work, which everyone can see and only I actually use. Join emacs-jp on Slack. 924 users are registered so far. Powered by slackinslackin.

Endless Parentheses

Ramblings on productivity and technical subjects.

09 Oct 2017, by .

Although fine-tuning your slack notifications is already reason enough to runslack in Emacs, that’s only the beginning. Once everything is up and runningyou get to decide what you want out of your slack. Some of the snippets belowsimply make up for missing functionality, other customize the package beyondwhat you can do on the Slack Webapp.

Priorities first. The most important improvement you can implement is installemojify-mode and turn it on for slack chats.

Emacs Slack Tutorial

Secondly, make sure you customize the chat faces to your liking. Just open achat buffer, place your cursor on a piece of text whose face you want tocustomize, and call customize-face.

In order to keep track of new messages in the mode-line, slack.el uses a packagecalled tracking, which is the same one circe uses for IRC chats. The commandtracking-next-buffer is a fantastic way to cycle through your pendingmessages, bind it to something short.

I’ll never know who thought user statuses were a good idea for Slack. But, thanks to a tip by _asummers on HackerNews, I can live in a world where they don’t exist.

I like notifications with minimal titles, and the package is kind enough to makethese configurable.

Slack.el uses lui for the chat buffers. If you, like me, are a heavy user ofabbrevs in Emacs, you’ll find it annoying that the final word of each messagewon’t get expanded unless you explicitly hit SPC before RET. That’s easy toremedy with an advice.

Finally, the biggest missing feature from this package is that it displays theauthor on every message output.
Never mind, this feature has now been implemented by the package author!

You don’t have to stop here, of course. Want to fine-tune which buffers gettracked on the mode-line? Hack into tracking.el. Want to change the face usedfor your own messages, or even align them to the right? Redefineslack-buffer-insert. Your workflow is yours to build.

Update 17 mar 2019

Emacs Slack

Noted that the message-merging is now part of the package.

What tests you shouldn’t write: an essay on negative tests »

« Turbo up your Ruby console in Emacs

Emacs Slack

Related Posts

  • Keep your Slack distractions under control with Emacsin slack

EmacsPlease enable JavaScript to view the comments powered by Disqus.comments powered by Disqus

Content © 2019, All rights reserved. Icons under CC3.0.

Table of Contents
17.1 Starting emacs
17.2 Buffers
17.3 Modes
17.4 Basic Editing
17.5 Saving Files

While vi (with its clones) is without a doubt the mostubiquitous editor on Unix-like systems, Emacs comes in a good second. Instead of usingdifferent “modes”, like vi does, it uses Control and Alt key combinations to entercommands, in much the same way that you can use Control and Alt key combinations in a word processor and indeed in many otherapplications to execute certain functions. (Though it should be noted that the commandsrarely correspond; so while many modern applications use Ctrl-C/ X/ V for copying,cutting and pasting, Emacs uses different keys and actually a somewhat differentmechanism for this.)

Also unlike vi, which is an (excellent) editor and nothingmore, Emacs is a program with near endless capabilities. Emacs is (for the most part)written in Lisp, which is a very powerful programming language that has the peculiarproperty that every program written in it is automatically a Lisp compiler of its own.This means that the user can extend Emacs, and in fact write completely new programs“in Emacs”.

As a result, Emacs is not just an editor anymore. There are many add-on packages forEmacs available (many come with the program's source) that provide all sorts offunctionality. Many of these are related to text editing, which is after all Emacs' basictask, but it doesn't stop there. There are for example several spreadsheet programs forEmacs, there are databases, games, mail and news clients (the top one being Gnus),etc.

There are two main versions of Emacs: GNU Emacs (which is the version that comes withSlackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacsand XEmacs run on the console as well as under X. XEmacs was once started as a project totidy up the Emacs code. Currently, both versions are being actively developed, and thereis in fact much interaction between the two development teams. For the present chapter,it is immaterial whether you use Emacs or XEmacs, the differences between them are notrelevant to the normal user.

Emacs can be started from the shell by simply typing emacs.When you are running X, Emacs will (normally) come up with its own X window, usually witha menu bar at the top, where you can find the most important functions. On startup, Emacswill first show a welcome message, and then after a few seconds will drop you in the*scratch* buffer. (See Section 17.2.)

You can also start Emacs on an existing file by typing

This will cause Emacs to load the specified file when it starts up, skipping thewelcome message.

17.1.1 CommandKeys

Emacs Slacks

As mentioned above, Emacs uses Control and Alt combinations for commands. The usual convention is to write thesewith C-letter and M-letter, respectively. So C-x means Control+x, and M-x means Alt+x. (The letter M is used instead of A becauseoriginally the key was not the Alt key but the Meta key. The Meta key has all but disappearedfrom computer keyboards, and in Emacs the Alt key has taken overits function.)

Many Emacs commands consist of sequences of keys and key combinations. For example, C-xC-c (that is Control-xfollowed by Control-c ) quits Emacs, C-xC-s saves the current file. Keep in mind that C-xC-b is not the same as C-xb. The former means Control-x followed by Control-b, while the latter means Control-x followed by just 'b'.