\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{Nestor (Nestor)} \pdfinfo{ /Title (nestor-vim.pdf) /Creator (Cheatography) /Author (Nestor (Nestor)) /Subject (Nestor -\textgreater{}\textgreater{} 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}{5262A3} \definecolor{LightBackground}{HTML}{F4F5F9} \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{Nestor -\textgreater{}\textgreater{} vim Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Nestor (Nestor)} via \textcolor{DarkBackground}{\uline{cheatography.com/22757/cs/4748/}}} \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}Nestor (Nestor) \\ \uline{cheatography.com/nestor} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 5th August, 2015.\\ Updated 16th May, 2021.\\ 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}{Plik}} \tn % Row 0 \SetRowColor{LightBackground} `vim` & uruchamia edytor vim \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `vim NAZWY` & uruchamia vim i wczytuje pliki NAZWY \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `:q!` & wyjście bez zachowania zmian \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} `:q` & wyjście, jeśli wszystkie zmiany są zachowane \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} :w & zapis zmian w pliku \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} `:w!` & wymuszenie zmian w pliku \tn % Row Count 8 (+ 1) % Row 6 \SetRowColor{LightBackground} `:wq` & zapis zmian i wyjście \tn % Row Count 9 (+ 1) % Row 7 \SetRowColor{white} `:!NAZWA` & wykonuje polecenie {\emph{NAZWA}} w shellu \tn % Row Count 11 (+ 2) % Row 8 \SetRowColor{LightBackground} `:w "NAZWA"` & zapisuje aktualny plik pod nazwą \tn % Row Count 13 (+ 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}{Tryby pracy}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{normal}} {\emph{tryb poleceń}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Domyślny tryb pracy vim. Wydawane tutaj różne skróty klawiaturowe pozwalają przejść do innego trybu, kasować tekst, kopiować tekst lub go przenosić. Aby wrócić do {\bf{NORMAL}} naciskamy klawisz `{[}Esc{]}`} \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{insert}} {\emph{tryb wprowadzania}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Najprościej przejść do trybu {\bf{INSERT}} wciskając klawisz `i` (więcej w dziale: "Wejście do trybu edycji"). Tutaj vim zachowuje się w sposób zblizony do normalnego edytora} \tn % Row Count 11 (+ 5) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{visual}} {\emph{tryb wizualny}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Do nawigacji i manipulacji wyborów tekstowych, tryb ten pozwala na wykonywanie większości normalnych poleceń.} \tn % Row Count 15 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{select}} {\emph{tryb wizualny 2}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Tryb wizualny, ale obsługą zbliżoną do MS} \tn % Row Count 17 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{command-line}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Do wprowadzania poleceń, podobnie jak w trybie {\bf{NORMAL}}} \tn % Row Count 20 (+ 3) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{ex-mode}}} \tn \mymulticolumn{1}{x{5.377cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Podobny do trybu {\bf{command-line}}, ale zoptymalizowany do przetwarzania wsadowego.} \tn % Row Count 23 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.38896 cm} x{2.58804 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Poruszanie się}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}l \textasciicircum{}LUB\textasciicircum{} \{\{fa-arrow-right\}\} & kursor w prawo \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \{\{nobreak\}\}h \textasciicircum{}LUB\textasciicircum{} \{\{fa-arrow-left\}\} & kursor w lewo \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}j \textasciicircum{}LUB\textasciicircum{} \{\{fa-arrow-down\}\} & kursor w dół \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \{\{nobreak\}\}k \textasciicircum{}LUB\textasciicircum{} \{\{fa-arrow-up\}\} & kursor w górę \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \{\{nobreak\}\}`G` & na koniec pliku \tn % Row Count 9 (+ 1) % Row 5 \SetRowColor{white} \{\{nobreak\}\}`gg` & na początek pliku \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} \{\{nobreak\}\}{\emph{NUMER}} `G` & do linii {\emph{NUMER}} \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} \{\{nobreak\}\}`Ctrl + g` & numer linii + {\emph{STATUS}} \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} \{\{nobreak\}\}`\textasciicircum{}` & przejście na początek linii \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} \{\{nobreak\}\}`\$` & przejście na koniec linii \tn % Row Count 18 (+ 2) % Row 10 \SetRowColor{LightBackground} \{\{nobreak\}\}`w` & początek następnego wyrazu \tn % Row Count 20 (+ 2) % Row 11 \SetRowColor{white} \{\{nobreak\}\}`W` & początek następnego wyrazu, może zawierać znaki interpunkcyjne. \tn % Row Count 24 (+ 4) \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}{Wejście do trybu edycji}} \tn % Row 0 \SetRowColor{LightBackground} `i` & kursor przed znakiem \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `I` & kursor na początku aktualnej linii \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} `a` & kursor za znakiem \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} `A` & na końcu aktualnej linii \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} `o` & na początku nowej linii poniżej \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} `O` & na początku nowej linii powyżej \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} `s` & zastępuje znak pod kursorem \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} `ce` & zastępuje bieżący wyraz \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} `R` & zamienia znak pod kursorem, z przejściem w tryb edycji \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.54747 cm} x{4.42953 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Edycja z trybu poruszania}} \tn % Row 0 \SetRowColor{LightBackground} `dd` & kasuje bieżącą linię \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `2dd` & usuwa 2 linie, począwszy od bieżącej \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `d\$` & usuwa tekst od kursora do końca linii \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `de` & usuwa tekst do końca bieżącego wyrazu \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} `dw` & usuwa wyraz pod kursorem \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} `x` & usuwa znak pod kursorem {\bf{DEL}} \tn % Row Count 9 (+ 1) % Row 6 \SetRowColor{LightBackground} `X` & usuwa znak {\bf{BACKSPACE}} \tn % Row Count 10 (+ 1) % Row 7 \SetRowColor{white} `w` & początek następnego wyrazu \tn % Row Count 11 (+ 1) % Row 8 \SetRowColor{LightBackground} `b` & początek poprzedniego wyrazu \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} `r` & zamienia znak pod kursorem, bez wejścia w tryb edycji \tn % Row Count 14 (+ 2) % Row 10 \SetRowColor{LightBackground} `R` & zamienia znak pod kursorem, z przejściem w tryb edycji \tn % Row Count 16 (+ 2) \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}{Wykonywanie poleceń}} \tn % Row 0 \SetRowColor{LightBackground} !"komenda" & Uruchamia komendę w shellu \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} !dir & Listuje katalog \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} :r !dir & Wczytuje wyjście polecenia dir i umieszcza poniżej kursora \tn % Row Count 5 (+ 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}{Zmiana wielkości liter}} \tn % Row 0 \SetRowColor{LightBackground} guu OR vU & {\bf{małe}} litery w całej linii \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} gUU OR VU & {\bf{wielkie}} litery w całej linii \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} g\textasciitilde{}\textasciitilde{} & zamień wielkość liter w linii \tn % Row Count 5 (+ 1) % Row 3 \SetRowColor{white} vEU & {\bf{wielkie}} litery w wyrazie pod kursorem \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} vE & zamień wielkość liter w wyrazie \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} ggguG & {\bf{małe}} litery w całym pliku \tn % Row Count 10 (+ 1) \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}{Zawijki - Folding}} \tn % Row 0 \SetRowColor{LightBackground} zf\#j & utwórz zawijkę od kursora \# linii w dół \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \seqsplit{zf/string} & utwórz zawijkę od kursora do stringu \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} zj & przenieś kursor do następnej zawijki \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} zk & przenieś kursor do poprzedniej zawijki \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} zo & otwórz {\bf{zawijkę}} pod kursorem \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} zO & otwórz wszystkie pod kursorem \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} zm & zamyka jeden lub więcej poziomów zawijania \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} zM & Otwórz wszystkie zawijki \tn % Row Count 14 (+ 1) % Row 8 \SetRowColor{LightBackground} zc & zamyka {\bf{zawijkę}} \tn % Row Count 15 (+ 1) % Row 9 \SetRowColor{white} zr & zmniejsz poziom zawijania o jeden \tn % Row Count 17 (+ 2) % Row 10 \SetRowColor{LightBackground} zR & zmniejsz poziom zawijania do 0 - wszystkie otwarte \tn % Row Count 19 (+ 2) % Row 11 \SetRowColor{white} zd & kasuje {\bf{zawijkę}} pod kursorem \tn % Row Count 20 (+ 1) % Row 12 \SetRowColor{LightBackground} zE & \{\{fa-bolt\}\} kasuje wszystkie zawijki \tn % Row Count 22 (+ 2) % Row 13 \SetRowColor{white} {[}z & przenieś na początek otwartej zawijki \tn % Row Count 24 (+ 2) % Row 14 \SetRowColor{LightBackground} {]}z & przenieś na koniec otwartej zawijki \tn % Row Count 26 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{:help folding \newline :help zc \newline :help zo \newline :help za \newline :help zf \newline :help :syn-fold} \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}{Sortowanie}} \tn % Row 0 \SetRowColor{LightBackground} :vimgrep & grep \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} :\{rang​ e\}sort u & sortowanie stringów \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} :sort N & sortowanie N linii \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} :sort /\textasciicircum{}.*|/ & sortuj po "​ |" \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}