\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{nonotfk} \pdfinfo{ /Title (emacs.pdf) /Creator (Cheatography) /Author (nonotfk) /Subject (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}{2F65A3} \definecolor{LightBackground}{HTML}{F2F5F9} \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{Emacs Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{nonotfk} via \textcolor{DarkBackground}{\uline{cheatography.com/43485/cs/13230/}}} \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}nonotfk \\ \uline{cheatography.com/nonotfk} \\ \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 26th October, 2017.\\ 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{1.09494 cm} x{3.88206 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Général}} \tn % Row 0 \SetRowColor{LightBackground} C+z & Quitter {\emph{temporairement}} emacs \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} C+x C+c & Quitter emacs \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} C+Space & Début de sélection de texte \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} C+u C+Space & Déplace le curseur à l'endroit de la dernière sélection de texte (mark ring) \tn % Row Count 6 (+ 3) % Row 4 \SetRowColor{LightBackground} C+x C+Space & Déplace le curseur vers le dernier mark ring de l'ensemble des buffers ou tampons (fichiers ouverts dans emacs) \tn % Row Count 10 (+ 4) % Row 5 \SetRowColor{white} C+w & Couper \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} M+w & Copier \tn % Row Count 12 (+ 1) % Row 7 \SetRowColor{white} C+y & Coller le dernier élément du presse papier \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} C+y M+y & Faire défiler le contenu du presse-papier (kill ring) \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} C+g & Annule une commande entamée \tn % Row Count 17 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.33919 cm} x{2.63781 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Fichier}} \tn % Row 0 \SetRowColor{LightBackground} C+x C+f (find) nom\_de\_fichier & Trouver fichier existant dont le nom est nom\_de\_fichier ou créer un nouveau fichier dont le nom est nom\_de\_fichier \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} C+x C+s (save) & Sauvegarde le fichier \tn % Row Count 7 (+ 1) % Row 2 \SetRowColor{LightBackground} C+x C+b & Liste des tampons = Liste des fichiers ouverts \tn % Row Count 10 (+ 3) % Row 3 \SetRowColor{white} C+x 1 & Ferme la liste des tampons \tn % Row Count 12 (+ 2) % Row 4 \SetRowColor{LightBackground} C+x b \seqsplit{nom\_du\_fichier\_dans\_le\_tampon} & Switcher vers le fichier en question \tn % Row Count 14 (+ 2) % Row 5 \SetRowColor{white} C+x s & Si plusieurs tampons ouverts demande pour chacun si il doit sauvegarder \tn % Row Count 18 (+ 4) \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}{Conversion de minuscule/majuscule}} \tn % Row 0 \SetRowColor{LightBackground} M+c (capital) & Lettre sous le curseur en majuscule \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M+- M+c (capital) & Première lettre du mot en majuscule \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} M+l (lower case) & Convertir en minuscule le MOT EN MAJUSCULE après le curseur \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} M+- M+l (lower case) & Convertir en minuscule le MOT EN MAJUSCULE avant le curseur \tn % Row Count 10 (+ 3) % Row 4 \SetRowColor{LightBackground} M+u (upper case) & Convertir en MAJUSCULE le mot en minuscule après le curseur \tn % Row Count 13 (+ 3) % Row 5 \SetRowColor{white} M+- M+u (upper case) & Convertir en MAJUSCULE le mot en minuscule avant le curseur \tn % Row Count 16 (+ 3) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Après sélection du texte à l'aide de C+Space} \tn % Row Count 17 (+ 1) % Row 7 \SetRowColor{white} C+x C+l (lower case) & Texte sélectionné en minuscule \tn % Row Count 19 (+ 2) % Row 8 \SetRowColor{LightBackground} C+x C+u (upper case) & Texte sélectionné en MAJUSCULE \tn % Row Count 21 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.4931 cm} x{3.4839 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Annulation}} \tn % Row 0 \SetRowColor{LightBackground} C+/ = C+\_ = C+x u & Annuler l'action précédente (idem que le C+Z dans LibreOffice) \tn % Row Count 3 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.4931 cm} x{3.4839 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Insertion et suppression :}} \tn % Row 0 \SetRowColor{LightBackground} \textless{}DEL\textgreater{} = backspace & Efface le caractère avant le curseur \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C+d & Efface le caractère après le curseur \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} M+\textless{}DEL\textgreater{} & Efface le mot avant le curseur \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} M+d & Efface le mot après le curseur \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C+k & Supprime du curseur à la fin de la ligne \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} M+k & Supprime du curseur jusqu'à la fin du fichier \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} C+Space & Marquer le début de la zone à supprimer et bouger le curseur pour sélectionner du texte. \tn % Row Count 16 (+ 4) % Row 7 \SetRowColor{white} C+w & Supprime ou coupe le texte sélectionner précédemment \tn % Row Count 18 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Supprimer = couper = texte récupérable} \tn % Row Count 19 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Effacer = effacer = texte non récupérable (hormis rétablir)} \tn % Row Count 21 (+ 2) % Row 10 \SetRowColor{LightBackground} C+y = coller & Restaurer le dernier texte SUPPRIMÉ \tn % Row Count 23 (+ 2) % Row 11 \SetRowColor{white} M+y & Idem mais permet d'appeler les textes supprimés précédemment \tn % Row Count 26 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.04057 cm} x{2.93643 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Changer de mode Emacs}} \tn % Row 0 \SetRowColor{LightBackground} M+x linum-mode & Numérote les lignes \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} M+x text-mode & Passe en mode texte \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.9954 cm} x{3.9816 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Manipulation d'écran}} \tn % Row 0 \SetRowColor{LightBackground} C+v (view) & Avance d'un écran \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} M+v (view) & Recule d'un écran \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} C+l & Remettre le texte où se situe le curseur au centre de l'écran \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} C+l x2 & Remettre le texte où se situe le curseur en haut de l'écran \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C+l x3 & Remettre le texte où se situe le curseur en bas de l'écran \tn % Row Count 10 (+ 2) \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}{Remplacer du texte}} \tn % Row 0 \SetRowColor{LightBackground} M+x \seqsplit{"replace-string"} & Remplacer le mot X par le Y à chaque fois qu'il apparait après le curseur \tn % Row Count 3 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.64701 cm} x{4.32999 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Manipulation des fenêtres}} \tn % Row 0 \SetRowColor{LightBackground} C+x 1 & Détruit toutes les fenêtres sauf une. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C+x 2 & Nouvelle fenêtre en bas (dans le même frame) \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} C+x 3 & Nouvelle fenêtre à droite (dans le même frame) \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} C+x 52 & Nouvelle frame \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} C+x 50 & Fermer la frame en cours \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.4931 cm} x{3.4839 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Rechercher du texte}} \tn % Row 0 \SetRowColor{LightBackground} C+s (search) & Recherche d'une chaine de caractère après le curseur \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C+r (rear search) & Recherche d'une chaine de caractère avant le curseur \tn % Row Count 4 (+ 2) \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}{Inversion}} \tn % Row 0 \SetRowColor{LightBackground} C+t & Inversion de deux caractères (se mettre sur le deuxième caractère) \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} M+- C+t & Inversion de deux caractères dans l'autre sens (se mettre sur le troisème caractère. Permet de revenir en arrière après la première commande \tn % Row Count 8 (+ 5) % Row 2 \SetRowColor{LightBackground} M+t & Inversion de mot (se mettre sur le premier caractère du second mot) \tn % Row Count 10 (+ 2) % Row 3 \SetRowColor{white} C+x C+t & Inversion de deux lignes (se mettre au début de la deuxième ligne) \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.74195 cm} x{3.23505 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Manipulation du curseur}} \tn % Row 0 \SetRowColor{LightBackground} C-p (previous) & Curseur à la ligne précédente \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} C-n (next) & Curseur à la ligne suivante \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} C-b (back) & Curseur en arrière d'un caractère \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} C-f (forward) & Curseur vers l'avant d'un caractère \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} M+b (back) & Curseur en arrière d'un mot \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} M+f (forward) & Curseur en avant d'un mot \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} C+a & Curseur en début de ligne \tn % Row Count 12 (+ 1) % Row 7 \SetRowColor{white} C+e (end) & Curseur en fin de ligne \tn % Row Count 13 (+ 1) % Row 8 \SetRowColor{LightBackground} M+a & Curseur en début de phrase \tn % Row Count 15 (+ 2) % Row 9 \SetRowColor{white} M+e (end) & Curseur en fin de phrase \tn % Row Count 16 (+ 1) % Row 10 \SetRowColor{LightBackground} M+\textless{} & Renvoi au début du fichier \tn % Row Count 18 (+ 2) % Row 11 \SetRowColor{white} M+\textgreater{} & Renvoi à la fin du fichier \tn % Row Count 20 (+ 2) % Row 12 \SetRowColor{LightBackground} C+x o & Basculer le curseur entre différentes fenêtres d'une même frame \tn % Row Count 23 (+ 3) % Row 13 \SetRowColor{white} C+u chiffre C+lettre : & Répétition de la commande x fois \tn % Row Count 25 (+ 2) % Row 14 \SetRowColor{LightBackground} Ex : `C+u 10 *` & écrit 10 fois le caractère * \tn % Row Count 27 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}