Emacs Less-known Tips
First, here are 4 commands every emacs user should know.
describe-key→ Find the command name of a keyboard shortcut.
describe-function→ Find the keyboard shortcut of a command.
apropos-command→ Search command by name.
describe-mode→ Show current mode's documentation.
For example, 【Alt+x】
describe-key, Enter, then press 【Ctrl+f】. Emacs will then tell you the commad name corresponding to the key you just pressed.
Now try the other commands above.
search the last searched string
Type 【Ctrl+s Ctrl+s】 to search the same word searched last time.
search the string under cursor without typing it
Type 【Ctrl+s Ctrl+w】 to search the word under the cursor. You can type 【Ctrl+w】 multiple times to expand the word selection.
[see Emacs: isearch Current Word]
list lines containing a string
[see Emacs: List Highlight Delete Matching Lines, Sort Reverse]
highlight all occurrences of word
[see Emacs: Search Text in Buffer]
Select a region first, then Alt+x
reverse-region → reverse order in region by lines.
sort-fields → sort lines by a specific column, as string. (“fields” are separated by space or tabs. First field is 1, not 0.)
sort-numeric-fields → sort lines by a specific column, as number.
For example: Type 【Ctrl+u】, then 2, then Alt+x
sort-numeric-fields. This will sort the line by the 2nd column, and the fields are compared as numbers.
delete trailing white spaces
delete-trailing-whitespace does it to the whole buffer.
[see Emacs: Delete Trailing Whitespace]
make spaces and tabs visible
[see Emacs: Make Whitespaces Visible]
[see Emacs: Tabs, Space, Indentation Setup]
if you have a set of different texts i want to paste frequently, you can use multiple clipboards.
- Select the region, then Alt+x
copy-to-register【Ctrl+x r s】, give it a single character name as “1” or “a”.
- To paste it, Alt+x
insert-register【Ctrl+x r i】.
[see Emacs: Using Registers (Multiple Clipboards)]
If your text is frequently needed (For example, XML template or signature), you should set up a abbreviation. See: Emacs: Abbrev Mode Tutorial.
no restarting emacs when add to init file
- Just select the new emacs lisp code, then Alt+x
eval-bufferto evaluate all code in current file.
load-file. Or, in dired, press 【L】 (
dired-do-load) on the file name. [see dired tutorial]
[see Evaluate Emacs Lisp Code]
start a second shell
To start a second shell, Alt+x
universal-argument 【Ctrl+u】 first, like this: 【Ctrl+u Alt+x shell】.
“refresh” a opened file to its saved state
revert-buffer. If someone modified the file, typically emacs will auto detect it, and when you type something, emacs will automatically ask you what to do.
;; set file to auto refresh when change detected (For example, changed by other) (global-auto-revert-mode 1)
How to open .info file as info?
universal-argument 【Ctrl+u】, then Alt+x
info 【Ctrl+h i】, then the info file name.
open file as hex-decimal (byte-code editor)
To open the file as hex, Alt+x
hexl-find-file. If the file is already opened, Alt+x
[see Emacs: Set File to Open in a Major Mode]
set the background color
Put this in your emacs init file:
(setq default-frame-alist '((background-color . "cornsilk")))
To see a list of color names emacs support, Alt+x
[see Emacs: Set Default Window Size]