This page shows you how to set up emacs so its user interface is more similar to modern applications.
The following guide assume you are using GNU Emacs version 23.2 or later. 〔☛ New Features in Emacs 23〕
If you want a out-of-the-box solutions, you can download: ErgoEmacs (Windows), Aquamacs Emacs (Mac).
How to have standard keys for Copy & Paste?
Turn on the CUA mode. Put the following in your emacs init file:
(cua-mode 1)
The CUA mode will do 4 things:
How to have standard shortcut keys for Open, Close, Save, Save As, Select All …?
Use the package ErgoEmacs Keybinding.
How to have redo?
You need to install a redo mode. See: Emacs: Best Undo/Redo Mode.
How to make the copy key copy the current line when there's no selection?
How to have emacs highlight text selections?
Put this in your emacs init file:
(transient-mark-mode 1) ; highlight text selection (delete-selection-mode 1) ; delete seleted text when typing
Starting with Emacs 23.2, transient-mark-mode is on by default. 〔☛ New Features in Emacs 23〕
How to have syntax coloring on by default?
This is on by default starting with emacs 22 (released in 2007). If not on, put the following in your emacs init file:
(global-font-lock-mode 1) ; turn on syntax coloring
How to have matching parenthesis highlighted?
Put the following code in your emacs init file:
(show-paren-mode 1) ; turn on paren match highlighting (setq show-paren-style 'expression) ; highlight entire bracket expression
How to change the default font?
Use the menu: 〖Options ▸ Set Font〗, then 〖Options ▸ Save Options〗.
See also:
How to show line numbers?
You can have line numbers displayed in the left vertical margin. To turn it on, call linum-mode. To have it on by default, put the following in your emacs init file:
(global-linum-mode 1) ; display line numbers in margin. Emacs 23 only.
linum-mode on.How to show the cursor's column position?
Call column-number-mode. After you turned it on, the cursor's line position and column position will show in the status bar, like this: (166,3). The first is line number, the second is position from the beginning of line.
To always have it on, put the following code in your emacs init file.
(column-number-mode 1)
How to make emacs stop creating those “backup~” files or those “#autosave#” files?
Put the following in your emacs init file.
(setq make-backup-files nil) ; stop creating those backup~ files (setq auto-save-default nil) ; stop creating those #autosave# files
How to open recently opened file in emacs?
Call recentf-mode to turn it on.
Then, call recentf-open-files to list and open recently opened file.
You can give it a single key keyboard shortcut.
〔☛ Emacs: How to Define Keys〕
To turn it on for future sessions, put this in your emacs init file:
(recentf-mode 1) ; keep a list of recently opened files
How to turn on ruler?
Call ruler-mode.
How to turn on tabs as in web browser?
You need to install tabbar-mode.
You can get it from MELPA repository. Call list-packages.
See: A Guide on Emacs 24 Package System.
You can also install “tabbar-ruler” to make it pretty.
How to have the down arrow key move by screen lines?
This is default with emacs 23. 〔☛ New Features in Emacs 23〕
(setq line-move-visual nil) ; use t for true, nil for false
How to have lines soft wrapped at word boundary?
Pull the menu 〖Options ▸ Line Wrapping in this Buffer〗, or call visual-line-mode.
visual-line-mode off (top) and on (bottom) in emacs 23.To toggle globally, call global-visual-line-mode. To set it on or off permanently, use:
(global-visual-line-mode 1) ; 1 for on, 0 for off.
How to adjust margin?
You can use this command:
(defun toggle-margin-right () "Toggle the right margin between `fill-column' or window width. This command is convenient when reading novel, documentation." (interactive) (if (eq (cdr (window-margins)) nil) (set-window-margins nil 0 (- (window-body-width) fill-column)) (set-window-margins nil 0 0) ) )
How to make lines NOT soft-wrap?
Call toggle-truncate-lines.
Note: the command name is misleading. It doesn't really truncate lines. Proper name would be “toggle-softwrap”.
How to set the spacing between lines?
Put the following elisp code in your emacs init file for easy toggle.
(defun toggle-line-spacing () "Toggle line spacing between no extra space to extra half line height." (interactive) (if (eq line-spacing nil) (setq-default line-spacing 0.5) ; add 0.5 height between lines (setq-default line-spacing nil) ; no extra heigh between lines ) (redraw-display))
This is useful for switching between reading source code and reading novels.
Note that the spacing height between lines also depends on font. See: Emacs: How to List & Set Font ◇ How to Quickly Switch Fonts in Emacs.
How to reformat paragraphs so that lines are not longer than 70 chars?
Call fill-paragraph 【Alt+q】 to reformat the current block of text your cursor is on. Call fill-region to reformat a text selection.
To have emacs automatically insert a newline char when your line reaches to the right, call auto-fill-mode.
You can set the width used in the above commands. Call set-variable, then given variable fill-column.
Note: these commands actually insert newline characters into your file. This type of wrapping is called hard-wrap. Hard-wrap convention of 80 chars came from Punched card. You should avoid hard-wrap when possible; add newline char only at logical positions. (Rant: The Harm of hard-wrapping Lines.)
Is there a unfill-paragraph? I want to remove line-break in a paragraph.
How to have cursor line always highlighted?
Call hl-line-mode to toggle on/off.
Call global-hl-line-mode to toggle globally.
(global-hl-line-mode 1) ; turn on highlighting current line
How to have fixed scroll?
Call scroll-lock-mode. When on, up/down arrow keys move the page, instead of the cursor.
This only turns it on in current buffer.
How to setup tabs, space, indentation?
How to set up emacs so that each file opens in a new window?
Put this code in your emacs init file:
(setq pop-up-frames t) ; t for true, nil for false
How to make emacs use dark background color (reverse video)?
Start emacs with emacs --reverse-video. (-rv for short.)
This is useful when working in bright sunlight. See also: Emacs: Playing with Color Theme.
Thanks to Ivan Kozik for a tip.