Yet another Emacs paste mode, this one for Gist.
Emacs Lisp
Switch branches/tags
Nothing to show
Pull request Compare This branch is 57 commits behind defunkt:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

WARNING: Things have changed considerably since version 0.5.1. Keep reading if you're unsure how this affects you.

gist.el -- Emacs integration for

Uses your local GitHub config if it can find it. See


What's new in 1.0 ?

  • gist.el now maintains a local cache so as to not go to the gist server every now and then.
  • multi-files gist support (indicated by a '+' in the gist list)
  • improved gist-list buffer, based on tabulated-list.el (same codebase as package.el) New keybindings:
    • g : reload the gist list from server
    • e : edit current gist description
    • k : delete current gist
    • + : add a file to the current gist
    • - : remove a file from the current gist
  • in-place edition. While viewing a gist file buffer, you can:
    • C-x C-s : save a new version of the gist
    • C-x C-w : rename some file
  • dired integration. From a dired buffer, you can:
    • @ : make a gist out of marked files (with a prefix, make it private)



gist.el depends on a number of other modules, that you'll need to install, either manually or by way of Emacs package manager

Install gist.el from marmalade (recommended)

In that scenario, you don't have to deal with the above dependencies yourself.

For emacs 24, first make sure is properly configured. Then

M-x package-install RET gist RET

For emacs 23, you'll need to install a version of package.el first. Some bootstrap code is available there: Then proceed as for emacs 24. You might get some compilation errors, but the package should be operational in the end.

Install gist.el from git

After installing the required dependencies, proceed with:

$ cd ~/.emacs.d/vendor
$ git clone git://

In your emacs config:

(add-to-list 'load-path "~/.emacs.d/vendor/gist.el")
(require 'gist)

Getting started

When you first run a gist.el operation, you might be asked for your GitHub username and password. The username will be stored for future use, and a OAuth token will be stored in place of your password.

To make gist.el forget about those information, just remove them from your ~/.gitconfig file


gist-list - Lists your gists in a new buffer. Use arrow keys
to browse, RET to open one in the other buffer.

gist-region - Copies Gist URL into the kill ring.
With a prefix argument, makes a private gist.

gist-region-private - Explicitly create a private gist.

gist-buffer - Copies Gist URL into the kill ring.
With a prefix argument, makes a private gist.

gist-buffer-private - Explicitly create a private gist.

gist-region-or-buffer - Post either the current region, or if mark
is not set, the current buffer as a new paste at .
Copies the URL into the kill ring.
With a prefix argument, makes a private paste.

gist-region-or-buffer-private - Explicitly create a gist from the
region or buffer.


Set gist-view-gist to non-nil if you want to view your Gist using browse-url after it is created.