In this blog post I collect some miscellaneous Emacs tips and tricks.
Playing with Macros
In Emacs, you can record a set of actions that you can then apply to a selected region. As an example, let’s transform the following three lines:
First Line Second Line Third Line
into a list of items, using a macro:
- First Line - Second Line - Third Line
Put your cursor on the First line
, then start recording a new keyboard macro by typing:
C-x (
Jump to the beginning of the line (C-a
), insert a dash followed by a space (-
) and then move your cursor down one line, so it resides on the Second Line
.
Stop recording the macro:
C-x )
Now select the lines Second Line
and Third Line
and apply the newly recorded macro to the selected region by pressing:
C-x C-k r
You should now see the desired output.
Swapping Words
Say that you want to reverse the order of the parameter for the following function:
foo(Second, First) -> ok.
Position the cursor between the words Second
and First
. Then, press:
M-t
You should obtain the following:
foo(First, Second) -> ok.
Swapping Lines
Given the following two lines:
Second Line First Line
Put the cursor at the beginning of First Line
and press:
C-x C-t
You should get:
First Line Second Line
Version Control
Emacs has support for the most common Version Control systems (e.g. SVN).
To check-in a single file directly from Emacs, simply follow the steps below:
- Press
C-x v v
- Write a meaningful change comment
- Press
C-c C-c
To revert changes for the current buffer:
C-x v u
To see the differences for a buffer before committing it:
C-x v =
Executing a Shell Command
If you want to execute a shell command within Emacs, you can simply type:
M-!
If you want to include the output into the current buffer, then:
C-u M-!
Clipboard History
Emacs keeps a clipboard history, allowing you to paste old clipboard entries. To utilize this function:
Press the following to paste:
C-y
And then browse the clipboard history by repeatedly typing:
M-y
Create a Numbered List
Say that you have a list of items that you want to convert into a numbered list:
first second third
1. first 2. second 3. third
There are many ways to achieve this. One is to use the Emacs Keyboard Macro Counter.
Position the cursor one line above your list and start registering a new macro:
C-x (
Insert a new counter value:
C-x C-k C-i.
A 0
will appear. Append a dot and a space:
.
Move the cursor to the next line and stop registering the macro:
C-x )
Select the list of items and apply the macro to the selected region:
C-x C-k r
Delete the 0
that you added at the beginning of the list and enjoy your brand new numbered list.