Emacs is a powerful, extensible and customizable text editor. GNU Emacs is probably the most popular variant of Emacs as it is included in the repositories of many popular GNU/Linux distributions. Emacs runs on several operating systems including GNU/Linux, OpenBSD, FreeBSD, NetBSD, MacOS, MS Windows and Solaris. **Install Emacs on OpenBSD** $ doas pkg_add emacs Emacs comes with a comprehensive, built-in help system which can be accessed by pressing C-h t; In other words, pressing Control h, followed by t. This starts an interactive tutorial that you can follow, save and continue at a later time. **Emacs cheat sheet** Emacs key bindings are unique, but easy to understand and remember when you become familiar with its terminology. In Emacs C-x means "click on Control and x at the same time". M-x means: "type Alt then x"; M refers to Meta. In most cases the Alt key functions as the Meta key. However on some keyboards there is a real Meta key. **In this cheat sheet we use the popular naming of the keys as Alt and Control.** **Starting emacs** $ emacs [Enter] to start emacs. $ emacs filename [Enter] to start emacs and load a file $ emacs -nw filename [Enter] to start emacs with no new window (load file) **Quitting** [Ctrl]x [Ctrl]c quit emacs (Emacs will prompt if any of the files have not yet been saved.) [Ctrl]g aborts any command in progress **Help** [Ctrl]h t to see the tutorial [Ctrl]h a topic [Enter] to see help about topic [Ctrl]x u undo the last command **Cursor positioning and navigation within a file** [Ctrl]f or [>-] forward (right) one character. [Ctrl]b or [>-] back (left) one character [Ctrl]p or [^] up one screen line [Ctrl]n or [v] down one screen line [Esc]b left one word [Esc]f right one word [Ctrl]a to beginning of line [Ctrl]e to end of line [Esc]< start of document [Esc]> end of document [Esc]v page up [Ctrl]v page down [Ctrl]l cursor in middle of screen [Ctrl]u 20 [Ctrl]n advance 20 lines [Ctrl]x w display the line number where the cursor is located [Esc]x goto-line [Enter] 999 [Enter] go to line number 999 **Search and Replace** [Ctrl]s dance [Enter] search for dance; cursor moves as you type. Press [Enter] once at the correct location [Ctrl]r dance [Enter] search backwards for dance; cursor moves as you type. [Ctrl]s [Enter] [Enter] search for the next occurrence [Esc]%25 oldstring [Enter] newstring [Enter] Search for oldstring and replace it with newstring. The y key confirms each replacement, n skips it, q to exit **Regions** [Ctrl]SPC set mark at cursor [Ctrl]w kill region [Esc]w copy region to kill ring [Ctrl]y yank back last thing killed **Loading and Saving** [Ctrl]x [Ctrl]f filename create new filename for editing (clears workspace) [Ctrl]x [Ctrl]f filename load in filename for editing [Ctrl]x [Ctrl]w filename write (save) as filename [Ctrl]x [Ctrl]s resave under the current filename (based on above or name given when starting emacs) **Cutting and Pasting** [Ctrl]SPC Mark one end of region [Ctrl]w Cut (after you Mark and move to other end) [Alt]w Copy (after you Mark and move to other end) [Ctrl]y Yank (paste) most recently killed (cut or copied); will also use text currently selected in another application. [Alt]y Next most recently killed (do [Ctrl]y first, repeat [Alt]y to cycle thru all)‍