\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{tacinight} \pdfinfo{ /Title (my-emacs-cheat-sheet.pdf) /Creator (Cheatography) /Author (tacinight) /Subject (My Emacs Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{1D53A3} \definecolor{LightBackground}{HTML}{F0F4F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{My Emacs Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{tacinight} via \textcolor{DarkBackground}{\uline{cheatography.com/70911/cs/17985/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}tacinight \\ \uline{cheatography.com/tacinight} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 21st November, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Basic}} \tn % Row 0 \SetRowColor{LightBackground} C-x C-c & Quit Emacs \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-g & Abort \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-x C-f & Find a file \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-x C-s & Save the file \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-x s & Save some buffers \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} C-x C-b & List buffers \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \textless{}ESC\textgreater{}\textless{}ESC\textgreater{}\textless{}ESC\textgreater{} & All-purpose get out \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.59724 cm} x{4.37976 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Movement}} \tn % Row 0 \SetRowColor{LightBackground} C-f & Forward one character \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-b & Back one character \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-n & Next line \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-p & Previous line \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-a & Beginning of line \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} C-e & End of line \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} M-f & Forward one word \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} M-b & Back one word \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} M-e & Next sentence \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} M-a & Previous sentence \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} M-v & Previous screen \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} C-v & Next screen \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} M-\textless{} & Beginning of buffer \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} M-\textgreater{} & End of buffer \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} M-g g & Jump to specified line \tn % Row Count 16 (+ 2) % Row 15 \SetRowColor{white} C-l & Redisplay the test around the cursor \tn % Row Count 18 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Window}} \tn % Row 0 \SetRowColor{LightBackground} C-x k & To close current buffer \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-x 0 & To close current window \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-x 1 & Remove other windows \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-x 2 & New window below \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-x 3 & New window on the right \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} C-x 4 C-f & Find file in other window \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} C-x o & moves to the other window \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} C-M-v & Scroll the bottom window \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{M-x make-frame : open a new frame \newline M-x delete-frame : removes the selected frame.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.04517 cm} x{3.93183 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Repeating}} \tn % Row 0 \SetRowColor{LightBackground} C-u 8 C-f & Move forward 8 character \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M-8 C-f & Move forward 8 character \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} C-u 8 C-v & Scrolls by 8 lines, not screenful \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} C-u 8 * & insert * 8 times \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Most Emacs commands accept a numeric argument, The way you give a command a repeat count is by typing C-u and then the digits before you type the command. {\bf{Alternative:}} type the digits while holding down the META/CTL key} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.84609 cm} x{4.13091 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Editing}} \tn % Row 0 \SetRowColor{LightBackground} C-\textless{}SPC\textgreater{} & Start selecting text \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C-d & Delete the next char \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} M-DEL & Kill the word before the cursor \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} M-d & Kill the next word after the cursor \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} C-k & Kill to end of line \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} M-k & Kill to the end of the sentence \tn % Row Count 8 (+ 1) % Row 6 \SetRowColor{LightBackground} C-w & Cut selection \tn % Row Count 9 (+ 1) % Row 7 \SetRowColor{white} M-w & Copy selection \tn % Row Count 10 (+ 1) % Row 8 \SetRowColor{LightBackground} C-/ & Undo, C-\_ \textbackslash{} C-x u do the same \tn % Row Count 11 (+ 1) % Row 9 \SetRowColor{white} C-y & Yank \tn % Row Count 12 (+ 1) % Row 10 \SetRowColor{LightBackground} M-y & Yank pop \tn % Row Count 13 (+ 1) % Row 11 \SetRowColor{white} M-u & End of word to uppercase \tn % Row Count 14 (+ 1) % Row 12 \SetRowColor{LightBackground} M-l & End of word to lowercase \tn % Row Count 15 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Auto-Fill-Mode}} \tn % Row 0 \SetRowColor{LightBackground} M-x auto-fill-mode & toggles the mode \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C-x f & Set the auto fill width \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} M-q & Re-fill the paragraph \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Searching}} \tn % Row 0 \SetRowColor{LightBackground} C-s & Incremental search \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-r & Reverse search \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \textless{}DEL\textgreater{} & Back / remove characters \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} M-\% & query before replacing string \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-M-\% & query before replacing regexp \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.23965 cm} x{2.73735 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Mark ring}} \tn % Row 0 \SetRowColor{LightBackground} C-\textless{}SPC\textgreater{} C-\textless{}SPC\textgreater{} & Set the mark \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-u C-\textless{}SPC\textgreater{} & Pop the mark point \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.84609 cm} x{4.13091 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Help}} \tn % Row 0 \SetRowColor{LightBackground} C-h t & Open the tutorial \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-h v & Help for variable \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-h f & Help for function \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-h k & Help for shortcuts \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-h r & Help menu \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} C-h i & Read included Manuals \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} C-h b & Display all key bindings \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.59724 cm} x{4.37976 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Sr-speed-bar}} \tn % Row 0 \SetRowColor{LightBackground} M-1 & Toggle the sr-speed-bar \tn % Row Count 1 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{U}} to go up parent directory. \newline {\bf{n}} or {\bf{p}} moves to next or previous node. \newline {\bf{M-n}} or {\bf{M-p}} moves to next or previous node at the current level. \newline {\bf{b}} switches to buffer list. \newline {\bf{f}} switches back to file list.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.19448 cm} x{3.78252 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Tuareg Mode}} \tn % Row 0 \SetRowColor{LightBackground} C-c C-c & Compile \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-c C-e & Eval phrase \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-x C-e & Eval phrase \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-M-X & Eval phrase \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} C-c C-r & Eval region \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} C-c C-b & Eval buffer \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} M-q & indent phrase \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} C-c C-s & tuareg-run-caml \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} C-c C-k & tuareg-kill-caml \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} C-c C-a & switch between ml/mli \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} M-n/p & switch last repl input \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{M-x tuareg-mode: Turn on Tuareg major mode \newline M-x run-ocaml: Start the OCaml REPL \newline S-\textless{}RET\textgreater{}: Evaluate a phrase \newline M-x ocamldebug FILE: Run the Ocaml debugger} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Merlin Mode}} \tn % Row 0 \SetRowColor{LightBackground} C-c C-l & Locate definition \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-c C-SPC & Go back \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C-c C-n & merlin-phrase-next \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C-c C-p & merlin-phrase-prev \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{1.04517 cm} x{3.93183 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Undo Tree}} \tn % Row 0 \SetRowColor{LightBackground} M-\_ & Redo \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C-x u & undo-tree-visualize \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}