\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{brennanmeadowcroft} \pdfinfo{ /Title (personal-vim.pdf) /Creator (Cheatography) /Author (brennanmeadowcroft) /Subject (Personal Vim 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}{090083} \definecolor{LightBackground}{HTML}{F7F7FB} \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{Personal Vim Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{brennanmeadowcroft} via \textcolor{DarkBackground}{\uline{cheatography.com/33942/cs/10613/}}} \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}brennanmeadowcroft \\ \uline{cheatography.com/brennanmeadowcroft} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 21st January, 2017.\\ Updated 21st January, 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.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Notes}} \tn % Row 0 \SetRowColor{LightBackground} \{\{fa-plug\}\} & Command derived from plugin \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{fa-user\}\} & Command derived from preferences \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`.vimrc` for this cheatsheet available on Github \{\{fa-github\}\}\{\{link="https://github.com/brennanmeadowcroft/dotfiles/tree/master/active/vim"\}\}brennanmeadowcroft/dotfiles\{\{/link\}\}} \tn \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}{Global}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}`:help \textless{}keyword\textgreater{}` & Open help for a keyword \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `:o \textless{}file\textgreater{}` & Open file \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} `:saveas \textless{}file\textgreater{}` & Save file as \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} `:close` & Close current pane \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `\textless{}n\textgreater{}\textless{}command\textgreater{}` & Do {\emph{n}} of {\emph{command}} (e.g. `5dd`) \tn % Row Count 7 (+ 2) % Row 5 \SetRowColor{white} `\textless{}Esc\textgreater{}` & Change to normal mode \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{fa-info-circle\}\} `\textless{}Leader\textgreater{}` is `,`} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Exiting}} \tn % Row 0 \SetRowColor{LightBackground} `:w` & Write (save) current file but don't exit \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `:Q` & Quit {\emph{ALL}} buffers (fails if unsaved changes) \{\{fa-user\}\} \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} `:q` & Quit current buffer (fails if unsaved changes) \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} `:q!` & Force quit \tn % Row Count 8 (+ 1) % Row 4 \SetRowColor{LightBackground} \{\{nobreak\}\}`:wq`/`:x` & Write (save) and quit \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.44333 cm} x{3.53367 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Macros}} \tn % Row 0 \SetRowColor{LightBackground} `qa` & Record macro `a` \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `qq` & Stop recording macro \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `@@` & Rerun last macro \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `{\bf{\_n\_}}@a` & Run macro `a` {\bf{\_n\_}} times \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.09494 cm} x{3.88206 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Visual Mode}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Marking Text}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `v` & start visual mode \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `V` & start linewise visual mode \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \seqsplit{`Ctrl+v`} & Start visual block mode \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `aw` & Mark a {\emph{WORD}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `ab` & Mark {\emph{AROUND}} block of () \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `aB` & Mark {\emph{AROUND}} block with \{\} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} `ib` & Mark {\emph{INSIDE}} block with () \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} `iB` & Mark {\emph{INSIDE}} block with \{\} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Visual Commands}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} `\textgreater{}` & Shift highlighted lines right \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} `\textless{}` & Shift highlighted lines left \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} `y` & Yank (copy) marked text \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} `d` & Delete marked text \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} `\textasciitilde{}` & Switch case of marked text \tn % Row Count 15 (+ 1) \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}{Insert Mode}} \tn % Row 0 \SetRowColor{LightBackground} `A` & Append to end of line \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `a` & Start inserting after cursor \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `i` & Start inserting before cursor \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Keyword Completion}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \seqsplit{`Ctrl+n`} & Keyword completion (e.g. variable names) \tn % Row Count 6 (+ 2) % Row 5 \SetRowColor{white} `Tab` & Keyword completion \{\{fa-plug\}\} \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} \seqsplit{`Ctrl+n`} & Move {\emph{DOWN}} in autocomplete window \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} \seqsplit{`Ctrl+p`} & Move {\emph{UP}} in autocomplete window \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Inserting Text}} \tn % Row 0 \SetRowColor{LightBackground} `i` & Insert {\emph{BEFORE}} cursor \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `I` & Insert at beginning of line \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `a` & Insert {\emph{AFTER}} cursor \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `A` & Insert at end of line \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `o` & Insert new line {\emph{BELOW}} current line \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `O` & Insert new line {\emph{ABOVE}} current line \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `ea` & Insert at end of the word \tn % Row Count 7 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-columns\}\}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.14471 cm} x{3.83229 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Cursor Movement}} \tn % Row 0 \SetRowColor{LightBackground} `h` & Move cursor left \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `j` & Move cursor down \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `k` & Move cursor up \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `l` & Move cursor right \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `H` & Move cursor to {\emph{TOP}} of screen \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `M` & Move cursor to {\emph{MIDDLE}} of screen \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} `L` & Move cursor to {\emph{BOTTOM}} of screen \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} `w` & Jump forward to {\emph{START}} of word \tn % Row Count 11 (+ 2) % Row 8 \SetRowColor{LightBackground} `e` & Jump forward to {\emph{END}} of word \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} `\textasciicircum{}` & Jump to first non-blank character of line \tn % Row Count 14 (+ 2) % Row 10 \SetRowColor{LightBackground} `\$` & Jump to end of the line \tn % Row Count 15 (+ 1) % Row 11 \SetRowColor{white} `O` & Jump to start of the line \tn % Row Count 16 (+ 1) % Row 12 \SetRowColor{LightBackground} `Ctrl+b` & Page Up \tn % Row Count 17 (+ 1) % Row 13 \SetRowColor{white} `Ctrl+f` & Page Down \tn % Row Count 18 (+ 1) % Row 14 \SetRowColor{LightBackground} `{\bf{{\emph{\_n\_}}}}G` & Go to line {\bf{\_n\_}} \tn % Row Count 20 (+ 2) % Row 15 \SetRowColor{white} `gg` & Go to the first line of the document \tn % Row Count 22 (+ 2) % Row 16 \SetRowColor{LightBackground} `G` & Go to the last line of the document \tn % Row Count 24 (+ 2) % Row 17 \SetRowColor{white} `\}` & Jump to next paragraph (or function/block) \tn % Row Count 26 (+ 2) % Row 18 \SetRowColor{LightBackground} `\{` & Jump to previous paragraph (or function/block) \tn % Row Count 28 (+ 2) % Row 19 \SetRowColor{white} `Ctrl+y` & Scroll up without moving cursor \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.14471 cm} x{3.83229 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Cursor Movement (cont)}} \tn % Row 20 \SetRowColor{LightBackground} `Ctrl+e` & Scroll down without moving cursor \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Search \& Replace}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Within Buffer}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \{\{nobreak\}\}`/{\bf{{\emph{\_keyword\_}}}}` & Search buffer for {\bf{\_keyword\_}} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `n` & Move {\emph{DOWN}} to next instance \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `N` & Move {\emph{UP}} to next instance \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} `*` & Search buffer for word under cursor \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Within Working Directory}}} \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} `\textless{}Leader\textgreater{}+a` & Search (ack) {\emph{INSIDE}} files in working directory \{\{fa-plug\}\} \{\{fa-user\}\} \tn % Row Count 14 (+ 4) % Row 7 \SetRowColor{white} `v` & Open file from search (ack) in {\emph{VERTICAL}} split \{\{fa-plug\}\} \tn % Row Count 17 (+ 3) % Row 8 \SetRowColor{LightBackground} `h` & Open file from search (ack) in {\emph{HORIZONTAL}} split \{\{fa-plug\}\} \tn % Row Count 21 (+ 4) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Replace}}} \tn % Row Count 22 (+ 1) % Row 10 \SetRowColor{LightBackground} \{\{nobreak\}\}`:\%s/{\bf{{\emph{\_old\_}}}}/{\bf{{\emph{\_new\_}}}}/g` & Replace all {\bf{\_old\_}} throughout file with {\bf{\_new\_}} \tn % Row Count 25 (+ 3) % Row 11 \SetRowColor{white} \{\{nobreak\}\}`:\%s/{\bf{{\emph{\_old\_}}}}/{\bf{{\emph{\_new\_}}}}/gc` & Replace {\bf{\_old\_}} with {\bf{\_new\_}} {\emph{WITH CONFIRMATIONS}} \tn % Row Count 28 (+ 3) \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}{Marks/Registers}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Marks}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \seqsplit{`:marks`} & List of marks \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `ma` & Set current position for mark `a` \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} `\textbackslash{}`a` & Jump to position of mark `a` \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Registers}}} \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} `:reg` & Show registers content \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} `"xy` & yank into register `x` \tn % Row Count 8 (+ 1) % Row 7 \SetRowColor{white} `"0p` & Paste contents of register x \tn % Row Count 9 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{fa-info-circle\}\} Unsure what these do... calling them out for research} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-columns\}\}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.9908 cm} x{2.9862 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Editing}} \tn % Row 0 \SetRowColor{LightBackground} `J` & Join line below to current one \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `cc` & change (replace) entire line \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `cw` & change (replace) to end of word \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `c\$` & change (replace) to end of line \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `s` & delete character and substitute text \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} `xp` & transpose two letters \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} `u` & undo \tn % Row Count 12 (+ 1) % Row 7 \SetRowColor{white} `Ctrl+r` & redo \tn % Row Count 13 (+ 1) % Row 8 \SetRowColor{LightBackground} `.` & Repeat last action \tn % Row Count 14 (+ 1) % Row 9 \SetRowColor{white} \{\{nobreak\}\}`ci{\bf{{\emph{\_char\_}}}}` & Change {\emph{INSIDE}} {\bf{\_char\_}} (e.g. `ci"`) \tn % Row Count 16 (+ 2) % Row 10 \SetRowColor{LightBackground} `ca{\bf{{\emph{\_char\_}}}}` & Change {\emph{AROUND}} (including) {\bf{\_char\_}} (e.g. `ca"`) \tn % Row Count 19 (+ 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}{Normal Mode - Code Folding}} \tn % Row 0 \SetRowColor{LightBackground} `zc` & Close a fold \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `zo` & Open a fold \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `zA` & Toggle all folds \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `za` & Toggle single fold \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `zM` & Close {\emph{ALL}} folds in buffer \tn % Row Count 5 (+ 1) \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}{Normal Mode - Buffers}} \tn % Row 0 \SetRowColor{LightBackground} `:ls` & List all buffers \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `:bd` & Close the current buffer \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `:bd{\bf{{\emph{\_n\_}}}}` & Close {\emph{\_n\_}} buffer \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} `:bn` & Navigate to next buffer \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} `:bp` & Navigate to previous buffer \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} `Ctrl+c` & Close the current buffer \{\{fa-plug\}\} \tn % Row Count 8 (+ 2) % Row 6 \SetRowColor{LightBackground} `Ctrl+h` & Navigate to previous buffer \{\{fa-plug\}\} \tn % Row Count 10 (+ 2) % Row 7 \SetRowColor{white} `Ctrl+l` & Navigate to next buffer \{\{fa-plug\}\} \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.89586 cm} x{4.08114 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Normal Mode - Splits}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{`Ctrl+ws`} & Split current window {\emph{horizontally}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \seqsplit{`Ctrl+wv`} & Split window {\emph{vertically}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \seqsplit{`Ctrl+wq`} & Quit a window \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{nl\}\}\{\{bb\}\}\{\{ac\}\}{\bf{Navigating Splits}}} \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} \seqsplit{`Ctrl+ww`} & Move to next split \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} \seqsplit{`Ctrl+wh`} & Move to split located {\emph{LEFT}} of current \tn % Row Count 11 (+ 2) % Row 6 \SetRowColor{LightBackground} \seqsplit{`Ctrl+wl`} & Move to split located {\emph{RIGHT}} of current \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} \seqsplit{`Ctrl+wj`} & Move to split located {\emph{BELOW}} current \tn % Row Count 15 (+ 2) % Row 8 \SetRowColor{LightBackground} \seqsplit{`Ctrl+wk`} & Move to split located {\emph{ABOVE}} current \tn % Row Count 17 (+ 2) \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}{Normal Mode - Cut/Paste}} \tn % Row 0 \SetRowColor{LightBackground} `yy` & Yank (copy) a line \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `yw` & Yank (copy) a word \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `y\$` & Yank (copy) to end of line \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `p` & Paste {\emph{BEFORE}} cursor \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `P` & Paste {\emph{AFTER}} cursor \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `dd` & Delete (cut) a line \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `dw` & Delete (cut) a word \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} `d\$` & Delete (cut) to end of line \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} `x` & Delete (cut) single character \tn % Row Count 9 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{fa-exclamation-triangle\}\} Deleting is basically cutting; anything deleted will be on clipboard.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-file\}\}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \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}{\{\{fa-plug\}\} Ctrl-P}} \tn % Row 0 \SetRowColor{LightBackground} `Ctrl+p` & Start Ctrl-P to search for files \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{nobreak\}\}`\textless{}enter\textgreater{}` & Open file in new buffer \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `Ctrl+k` & Navigate {\emph{UP}} in file list \tn % Row Count 5 (+ 1) % Row 3 \SetRowColor{white} `Ctrl+j` & Navigate {\emph{DOWN}} in file list \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} `Ctrl+f` & Move {\emph{FORWARD}} in search locations (files, buffers, most recent files) \tn % Row Count 10 (+ 3) % Row 5 \SetRowColor{white} `Ctrl+b` & Move {\emph{BACKWARD}} in search locations \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.84149 cm} x{3.13551 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-plug\}\} Ack.vim}} \tn % Row 0 \SetRowColor{LightBackground} `v` & Open highlighted file in {\emph{VERTICAL}} split \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `h` & Open highlighted file in {\emph{HORIZONTAL}} split \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}`\textless{}enter\textgreater{}` & Open highlighted file in new buffer \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \{\{nobreak\}\}`\textless{}leader\textgreater{}+a` & Open ack.vim for searching \{\{fa-user\}\} \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `q` & Close search results window \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-columns\}\}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.9908 cm} x{2.9862 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-plug\}\} NerdTree}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}`\textless{}Leader\textgreater{}+n` & Toggle NerdTree \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `P` & Move to {\emph{ROOT}} of working directory \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `p` & Move to parent folder above cursor \tn % Row Count 6 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.38436 cm} x{1.59264 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-plug\}\} NerdComment}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}`\textless{}leader\textgreater{}+c\textless{}space\textgreater{}` & Toggle comment \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `\textless{}leader\textgreater{}+cl` & Line comment \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} `\textless{}leader\textgreater{}+cu` & Uncomment \tn % Row Count 4 (+ 1) \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}{\{\{fa-plug\}\} Buffergator}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{`Ctrl+c`} & Close the current buffer \{\{fa-plug\}\} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \seqsplit{`Ctrl+h`} & Navigate to previous buffer \{\{fa-plug\}\} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \seqsplit{`Ctrl+l`} & Navigate to next buffer \{\{fa-plug\}\} \tn % Row Count 6 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-columns\}\}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{\{\{fa-plug\}\} Vimdiff - Layout}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/brennanmeadowcroft_1485024090_vimdiff.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\{\{fa-info-circle\}\} Access vimdiff for a branch with `git mergetool` from bash} \tn \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}{\{\{fa-plug\}\} VimDiff - Commands}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}`:diffget lo` & Use local version \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{nobreak\}\}`:diffget ba` & Use base version \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}`:diffget re` & Use remote version \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} `{[}c` & Navigate to {\emph{PREVIOUS}} conflict \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} `{]}c` & Navigate to {\emph{NEXT}} conflict \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{fa-info-circle\}\} It is possible to edit the code in the merged pane directly if none of the options (local, base, remote) are preferable.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}