54 votes

How can I start learning Emacs Lisp?

What a great question! Here is the path I've taken: Step 0: Read the Emacs Tutorial Read the Emacs Tutorial before anything else. It sounds like you've done this. Good on ya! However, for anyone ...
Lorem Ipsum's user avatar
  • 4,507
34 votes
Accepted

How can I start learning Emacs Lisp?

In my experience, the included tutorial on Emacs Lisp was not too helpful (I tried twice over the years and failed). Instead, I finally used the included Emacs Lisp Reference. What finally did work: ...
Beetle B.'s user avatar
  • 630
22 votes

If I know a keybinding/shortcut, how to get the corresponding function?

The describe-key command (C-h k) will tell you what command is bound to a given key sequence. To go the other way and find out what keys (if any) are bound to a command, use where-is (C-h w). You can ...
glucas's user avatar
  • 20.6k
20 votes

Emacs manuals are missing on Debian/Ubuntu

This is a great question! I've found the directions online to install it by hand unclear and, frankly, a bit of a pain (at least on Debian). On Debian... Emacs on Debian doesn't come with the Emacs ...
Lorem Ipsum's user avatar
  • 4,507
16 votes

Info file emacs does not exist

That error is because the full documentation is not installed by default. Solve it by installing emacs25-common-non-dfsg # aptitude install emacs25-common-non-dfsg Test it by trying, C-h i h It ...
music's user avatar
  • 356
12 votes

How can I start learning Emacs Lisp?

I recommend the "Emacs Lisp Intro". The "Emacs Lisp Intro" might be already available in info format within your Emacs. Try C-h i m Emacs Lisp Intro RET or evaluate (info "(eintr) Top") in Emacs. ...
Marco Wahl's user avatar
  • 2,876
11 votes
Accepted

How to describe a key sequence that starts with `C-u`?

Prefix keys like C-u may be described in the function body. You should therefore ignore such prefix keys when using C-h k to describe a function.
Emacs User's user avatar
  • 5,643
11 votes
Accepted

Why does GNU Emacs use ksi(ξ) as its logo?

It doesn't. It uses just an E that is suggestive of a gnu's horns.
Drew's user avatar
  • 77.5k
10 votes
Accepted

How to view package Full Description (commentary section) inside Emacs

M-x finder-commentary RET <library-name> RET extracts that section and presents it in a separate buffer for reading. There is also M-x finder-by-keyword for discovering libraries this way.
wasamasa's user avatar
  • 22.2k
10 votes
Accepted

How to discover (standard) function names?

Apropos help in Emacs is by no means limited to function apropos. M-x apropos documentation. It lets you match keywords or a regexp against doc strings. Very helpful when you don't know how the ...
Drew's user avatar
  • 77.5k
9 votes
Accepted

How do I create a button in Emacs?

You can use both make-button or make-text-button. For example (defun button-pressed (button) (message (format "Button pressed!"))) (define-button-type 'custom-button 'action 'button-pressed '...
Tephra's user avatar
  • 831
9 votes

How can I start learning Emacs Lisp?

Start with the Emacs Wiki page Learn Emacs Lisp. Not that that page itself will teach you Emacs Lisp. It will instead point to learning resources -- exactly what you're looking for here, with your ...
Drew's user avatar
  • 77.5k
9 votes
Accepted

Are the graphical depictions in docs drawed in manual labour?

Included with emacs is a basic tool called picture-mode: To edit a picture made out of text characters (for example, a picture of the division of a register into fields, as a comment in a program)...
JeanPierre's user avatar
  • 7,465
8 votes
Accepted

Is there a way to create an org-mode link that opens help?

There is. See (info "(org) External Links"): [[help:princ]]
jagrg's user avatar
  • 3,914
8 votes

What's :eval (colon eval) in defcustom?

The doc string tells you this: "Mode line lighter for Github Notifier." You couldn't otherwise know for sure what the code is about, or what :eval means in that context. That is, you ...
Drew's user avatar
  • 77.5k
7 votes
Accepted

How to see the name of the command every time I run it by a shortcut?

You can use post-command-hook. (defun my-echo-command-name-hook () (unless (or (eq this-command 'self-insert-command) (eq this-command 'next-line)) (message "%s" this-command))) (...
bertfred's user avatar
  • 1,729
7 votes
Accepted

How do I customize the way Emacs prints out certain keys and key sequences?

Yes. There is a function key-description that takes a list or vector of keys and returns a string that describes them. This is used by the built-in help facilities such as describe-key and describe-...
db48x's user avatar
  • 18k
7 votes
Accepted

How can I have multiple *Help* buffers with different content?

You can use rename-uniquely. Go to the help buffer, call rename-uniquely. It renames the buffer to something like *Help*<2>. Now If you open another help buffer, it doesn't affect *Help*<2>...
fhdhsni's user avatar
  • 693
7 votes

How can I have multiple *Help* buffers with different content?

You can also use command/function clone-buffer. M-x clone-buffer in buffer *Help* opens a new buffer *Help*<2> (or *Help*<3> if there is already a buffer *Help*<2>, etc.). Same ...
Drew's user avatar
  • 77.5k
7 votes

lazy find/search for commands within emacs

One way you can try to find such commands is to use C-h a. In vanilla Emacs this is bound to apropos-command. For C-h a you can input words to match in the command documentation - e.g., org and ...
Drew's user avatar
  • 77.5k
7 votes
Accepted

Meaning of "value is t"

To quote the Emacs Lisp Manual, t is the preferred way to represent the truth value true. When you need to choose a value that represents true, and there is no other basis for choosing, use t. ...
Lorem Ipsum's user avatar
  • 4,507
7 votes
Accepted

Retrieve all the major modes equipped with emacs

To list major modes defined with define-derived-mode macro you can grep el files in emacs-source/lisp folder like grep -A 1 '(define-derived-mode' **/*.el But maybe browsing built-in packages would ...
muffinmad's user avatar
  • 2,300
6 votes
Accepted

What is the correct way to pop up a window with a message, and locally bind a key in that buffer?

Use with-help-window: (with-help-window "*My Help Buffer*" ; Whatever buffer name you like. ;; Use `princ`, `prin1`, `terpri`, etc. to put text in the displayed buffer ) Key q will automatically ...
Drew's user avatar
  • 77.5k
6 votes
Accepted

`C-h` without knowing the type of an object

As @Drew mentions, the apropos commands are extremely important. The word derives from the French "à-propos" which can be translated as "in connection", "with regard" or &...
aadcg's user avatar
  • 1,248
5 votes

What bindings start with H-z?

You can find the bindings that start with a prefix by pressing C-h or <F1> after the prefix. In your case, pressing H-z C-hwill list all bindings that start with H-z. See this stackoverflow ...
Qudit's user avatar
  • 837
5 votes
Accepted

What bindings start with H-z?

Emacs has a special case for this, hitting the help character (default: either C-h or F1) after an incomplete key sequence will execute describe-prefix-bindings and show you possible commands starting ...
wasamasa's user avatar
  • 22.2k
5 votes

Key binding help for magit popup-based commands

You can use ? <key>. Inside popups ? is bound to magit-popup-help. It would make sense for C-h k to be bound to that command too. So I have done that now.
tarsius's user avatar
  • 25.7k
5 votes

How can I start learning Emacs Lisp?

As a refresher on Lisp I highly recommend the first three chapters of Peter Norvigs Paradigms of Artificial Intelligence Programming. Those give you a great and fast pace (re)introduction to Lisp ...
clemera's user avatar
  • 3,461
5 votes
Accepted

Disabling quote conversion in docstrings

Basil's answer covers the needs of the end-user. If you're writing elisp docstrings for other people, however, you (unfortunately) can't rely on everyone configuring text-quoting-style to grave, so ...
phils's user avatar
  • 51.1k
5 votes
Accepted

How to close help buffer without moving to it?

You can automatically have the *Help* window be selected when it is displayed, by customizing option help-window-select. help-window-select is a variable defined in help.el. Its value is t ...
Drew's user avatar
  • 77.5k

Only top scored, non community-wiki answers of a minimum length are eligible