emacs_2

Master Emacs with this comprehensive cheat sheet. Learn essential commands, shortcuts, and tips for efficient text editing, navigation, and more. Boost your productivity today!

Emacs Cheat Sheet

# Basics
    C-x C-f     "find" file i.e. open/create a file in buffer
    C-x C-s     save the file
    C-x C-w     write the text to an alternate name
    C-x C-v     find alternate file
    C-x i       insert file at cursor position
    C-x b       create/switch buffers
    C-x C-b     show buffer list
    C-x k       kill buffer
    C-z         suspend Emacs
    C-X C-c     close down Emacs

# Basic movement
    C-f         forward char
    C-b         backward char
    C-p         previous line
    C-n         next line
    M-f         forward one word
    M-b         backward one word
    C-a         beginning of line
    C-e         end of line
    C-v         one page up
    M-v         scroll down one page
    M-<         beginning of text
    M->         end of text

# Editing
    M-n         repeat the following command n times
    C-u         repeat the following command 4 times
    C-u n       repeat n times
    C-d         delete a char
    M-d         delete word
    M-Del       delete word backwards
    C-k         kill line
#
    C-Space     Set beginning mark (for region marking for example)
    C-W         "kill" (delete) the marked region
    M-W         copy the marked region
    C-y         "yank" (paste) the copied/killed region/line
    M-y         yank earlier text (cycle through kill buffer)
    C-x C-x     exchange cursor and mark
#
    C-t         transpose two chars
    M-t         transpose two words
    C-x C-t     transpose lines
    M-u         make letters uppercase in word from cursor position to end
    M-c         simply make first letter in word uppercase
    M-l         opposite to M-u

# Important
    C-g         quit the running/entered command
    C-x u       undo previous action
    M-x revert-buffer RETURN
                (insert like this) undo all changes since last save
    M-x recover-file RETURN
                Recover text from an autosave-file
    M-x recover-session RETURN
                if you edited several files

# Online-Help
    C-h c       which command does this keystroke invoke
    C-h k       which command does this keystroke invoke and what does it do?
    C-h l       what were my last 100 typed keys
    C-h w       what key-combo does this command have?
    C-h f       what does this function do
    C-h v       what's this variable and what is it's value
    C-h b       show all keycommands for this buffer
    C-h t       start the Emacs tutorial
    C-h i       start the info reader
    C-h C-k     start up info reader and go to a certain key-combo point
    C-h F       show the Emacs FAQ
    C-h p       show info about the Elisp package on this machine

# Search/Replace
    C-s         Search forward
    C-r         search backward
    C-g         return to where search started (if you are still in search mode)
    M-% query replace
#
    Space or y  replace this occurrence
    Del or n    don't replace
    .           only replace this and exit (replace)
    ,           replace and pause (resume with Space or y)
    !           replace all following occurrences
    ^           back to previous match
    RETURN or q quit replace

# Search/Replace with regular expressions
# Characters to use in regular expressions:
    ^           beginning of line
    $           end of line
    .           single char
    .*          group or null of chars
    \<          beginning of a word
    \>          end of a word
    []          every char inside the brackets (for example [a-z] means every small letter)
#
    M C-s RETURN search for regular expression forward
    M C-r RETURN search for regular expression backward
    M C-s       incremental search
    C-s         repeat incremental search
    M C-r       incremental search backwards
    C-r         repeat backwards
    M-x query-replace-regexp
                search and replace

# Window-Commands
    C-x 2       split window vertically
    C-x o       change to other window
    C-x 0       delete window
    C-x 1       close all windows except the one the cursors in
    C-x ^       enlarge window
    M-x shrink-window
                command says it ;-)
    M C-v       scroll other window
    C-x 4 f     find file in other window
    C-x 4 o     change to other window
    C-x 4 0     kill buffer and window
    C-x 5 2     make new frame
    C-x 5 f     find file in other frame
    C-x 5 o     change to other frame
    C-x 5 0     close this frame

# Bookmark commands
    C-x r m     set a bookmark at current cursor position
    C-x r b     jump to bookmark
    M-x bookmark-rename
    M-x bookmark-delete
    M-x bookmark-save
    C-x r l     list bookmarks
#
    d           mark bookmark for deletion
    r           rename bookmark
    s           save all listed bookmarks
    f           show bookmark the cursor is over
    m           mark bookmarks to be shown in multiple window
    v           show marked bookmarks (or the one the cursor is over)
    t           toggle listing of the corresponding paths
    w           path to this file
    x           delete marked bookmarks
    q           quit bookmark list
#
    M-x bookmark-write
                write all bookmarks in given file
    M-x bookmark-load
                load bookmark from given file

# Shell
    M-x         shell starts shell modus
    C-c C-c     same as C-c under Unix (stop running job)
    C-d         delete char forward
    C-c C-d     Send EOF
    C-c C-z     suspend job (C-z under Unix)
    M-p         show previous commands

# Text
# Works only in text mode
    M-s         center line
    M-S         center paragraph
    M-x center-region

# Programming
    M C-\       indent region between cursor and mark
    M-m         move to first (non-space) char in this line
    M-^         attach this line to previous
    M-;         formats and indent comment
# C, C++ and Java Modes
    M-a         beginning of statement
    M-e         end of statement
    M C-a       beginning of function
    M C-e       end of function
    C-c RETURN  Set cursor to beginning of function and mark at the end
    C-c C-q     indent the whole function according to indention style
    C-c C-a     toggle modus in which after electric signs (like {}:\';./*) Emacs does the indention
    C-c C-d     toggle auto hungry mode in which Emacs deletes groups of spaces with one del-press
    C-c C-u     go to beginning of this preprocessor statement
    C-c C-c     comment out marked area
# More general
    M-x outline-minor-mode
                collapses function definitions in a file to a mere {...}
    M-x show-subtree
                If you are in one of the collapsed functions, this expands it
# In order to achieve some of the feats coming up,
# now you have to run etags *.c *.h *.cpp
# (or what ever ending you source files have) in the source directory
    M-.         (Meta dot) If you are in a function call, this will take you to it's definition
    M-x tags-search ENTER
                Searches through all you etaged
    M-,         (Meta comma) jumps to the next occurrence for tags-search
    M-x tags-query-replace yum.
                This lets you replace some text in all the tagged files

# GDB (Debugger)
    M-x gdb     starts up gdm in an extra window

# Version Control
    C-x v d     show all registered files in this dir
    C-x v =     show diff between versions
    C-x v u     remove all changes since last checkin
    C-x v ~     show certain version in different window
    C-x v l     print log
    C-x v i     mark file for version control add
    C-x v h     insert version control header into file
    C-x v r     check out named snapshot
    C-x v s     create named snapshot
    C-x v a     create changelog file in gnu-style