Step 1: RTFM

Help>Tutorial or C-h t

  • Help Commands
  • C-h i = Manual
  • C-h k = Enter a shortcut to learn more about it
  • C-h f = Describes Commands and Functions
  • C-h a = Searches for Commands
  • C-h C-h = Shows Help
  • Step 2: The Basics

  • C-x C-f = Open and Find-File
  • C-x C-s = Save
  • C-x C-c = Quit
  • How To Select Text

  • Go to the start of your selection and C-SPACE
  • Go to the end of your selection and run your command
  • C-w = Cut or Kill
  • C-y = Paste or Yank
  • C-/ = Undo
  • Keyboard Marcos

  • C-x ( = Start your Macro
  • C-x ) = End your Macro
  • C-x e = Execute your Macro
  • Step 3: Extend and Customize

  • M-x load-theme = Try out color themes
  • M-x customize-group = Set common options
  • M-x customize-face = Change the background, foreground, etc
  • M-x list-packages = Install modules
  • Edit Your ~/.emacs.d/init.el

  • This file initializes your emacs, adds functionality, etc
  • M-x eval-buffer or Restart emacs to show changes
  • If your config breaks use emacs-q to skip customization
  • Step 4: Buffer and Window Management

  • C-x b = Switch buffer or use M-x ido-mode
  • C-x 0 = Get rid of current Windows
  • C-x 1 = Get rid of other Windows
  • C-x 2 = Split Window horizontally
  • C-x 3 = Split Window vertically
  • C-x o = Switch Window
  • Navigation and Search

  • M-g M-g = goto line
  • C-s = Interactive Search
  • C-r = Interactive Search Backward
  • M-> End of Buffer
  • M-< Start of Buffer
  • M-x occur = Find Lines
  • Step 5: Explore

  • org-mode.org
  • TRAMP = Remote Access
  • Eshell/Term = Terminal in Emacs
  • Calc = Calculator
  • Edebug = Writing and Debugging in Emacs
  • Step 6: Join the Church of Emacs

    Emacs Commands List

  • C = Control
  • M = Meta = Alt|Esc
  • 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 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 whats this variable and what is its 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 infos 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 dont 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 pos
  • C-x r b jump to bookmark
  • M-x bookmark-rename says it
  • 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
  • Del ?
  • 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
  • Directory Editor (dired)

  • C-x d start up dired
  • C (large C) copy
  • d mark for erase
  • D delete right away
  • e or f open file or directory
  • g reread directory structure from file
  • G change group permissions (chgrp)
  • k delete line from listing on screen (do not actually delete)
  • m mark with *
  • n move to next line
  • o open file in other window and go there
  • C-o open file in other window but do not change there
  • P print file
  • q quit dired
  • Q do query-replace in marked files
  • R rename file
  • u remove mark
  • v view file content
  • x delete files marked with D
  • z compress file
  • M-Del remove all marks (whatever kind)
  • ~ mark backup files (name~ files) for deletion
  • # mark auto-save files (#name#) for deletion
  • */ mark directory with * (C-u * removes that mark again)
  • = compare this file with marked file
  • M-= compare this file with its backup file
  • ! apply shell command to this file
  • M-} change to the next file marked with * od D
  • M-{ " previous "
  • % d mark files described through regular expression for deletion
  • % m " (with *)
  • + create directory
  • > changed to next dir
  • < change to previous dir
  • s toggle between sorting by name or date
  • Maybe into this category also fits this command:
  • M-x speedbar starts up a separate window with a directory view
  • Telnet

  • M-x telnet starts up telnet-modus
  • C-d either delete char or send EOF
  • C-c C-c stop running job (similar to C-c under unix)
  • C-c C-d send EOF
  • C-c C-o clear output of last command
  • C-c C-z suspend execution of command
  • C-c C-u kill line backwards
  • M-p recall previous command
  • Text

  • Works only in text mode
  • M-s center line
  • M-S center paragraph
  • M-x center-region name says
  • Macro-commands

  • C-x ( start macro definition
  • C-x ) end of macro definition
  • C-x e execute last defined macro
  • M-n C-x e execute last defined macro n times
  • M-x name-last-kbd-macro give name to macro (for saving)
  • M-x insert-keyboard-macro save named macro into file
  • M-x load-file load macro
  • M-x macroname execute macroname
  • 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-; formalize 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 pre-processor statement
  • C-c C-c comment out marked area
  • More general (I guess)

  • 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 un-collapses it
  • In order to achive 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-. (That is Meta dot) If you are in a function call, this will take you to its 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 check in
  • 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 change log file in gnu-style