\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{petherin} \pdfinfo{ /Title (goland-2018-1-mac.pdf) /Creator (Cheatography) /Author (petherin) /Subject (GoLand 2018.1 (Mac) 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}{238C27} \definecolor{LightBackground}{HTML}{F1F7F1} \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{GoLand 2018.1 (Mac) Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{petherin} via \textcolor{DarkBackground}{\uline{cheatography.com/58541/cs/15462/}}} \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}petherin \\ \uline{cheatography.com/petherin} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 11th April, 2018.\\ Updated 18th April, 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{3.4839 cm} x{1.4931 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Tool Windows / Popups}} \tn % Row 0 \SetRowColor{LightBackground} Project & ⌘1 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Version Control & ⌘9 \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Run & ⌘4 \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Debug & ⌘5 \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Terminal & ⌥F12 \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Editor & Esc \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} Navigation Bar & ⌘↑ \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} Hide all tool windows & ⇧⌘F12 \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Accessing a tool window via its shortcut moves the input focus to it, so you can use all keyboard commands in its context. When you need to go back to the editor, press ⎋ (Esc).} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.88206 cm} x{1.09494 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Code Completion}} \tn % Row 0 \SetRowColor{LightBackground} Basic completion & \seqsplit{⌃Space} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Smart Completion & \seqsplit{⌃⇧Space} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} See suggested parameters for method/function & ⌘P \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.4839 cm} x{1.4931 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Quick Popups}} \tn % Row 0 \SetRowColor{LightBackground} Documentation & F1 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Quick definition & ⌥Space \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Show usages & ⌥⌘F7 \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Show implementation & ⌥⌘B \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.4839 cm} x{1.4931 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Refactoring}} \tn % Row 0 \SetRowColor{LightBackground} Rename & ⇧F6 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Extract variable & ⌥⌘V \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Extract constant & ⌥⌘C \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Extract function & ⌥⌘M \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Inline & ⌥⌘N \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Copy & F5 \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} Move & F6 \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} Refactor this & ⌃T \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.13551 cm} x{1.84149 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Code Style and Formatting}} \tn % Row 0 \SetRowColor{LightBackground} Reformat code & ⌥⌘L \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Auto-indent lines & ⌃⌥I \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Optimize imports & ⌃⌥O \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Go fmt file & ⌥⇧⌘F \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Go fmt project & ⌥⇧⌘P \tn % Row Count 5 (+ 1) \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}{Editor Basics}} \tn % Row 0 \SetRowColor{LightBackground} Move the current line of code & ⇧⌘↑ ⇧⌘↓ \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Duplicate a line of code & ⌘D \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} Remove a line of code & ⌘⌫ \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} Comment or uncomment a line of code & ⌘/ \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} Comment a block of code & ⌥⌘/ \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} Find in the currently opened file & ⌘F \tn % Row Count 9 (+ 2) % Row 6 \SetRowColor{LightBackground} Find and replace in the current file & ⌘R \tn % Row Count 11 (+ 2) % Row 7 \SetRowColor{white} Next/previous occurrence & ⌘G ⇧⌘G \tn % Row Count 12 (+ 1) % Row 8 \SetRowColor{LightBackground} Navigate between opened tabs & ⇧⌘{]} ⇧⌘{[} \tn % Row Count 14 (+ 2) % Row 9 \SetRowColor{white} Navigate back/forward & ⌘{[} ⌘{]} \tn % Row Count 15 (+ 1) % Row 10 \SetRowColor{LightBackground} Expand or collapse a code block in the editor & ⌘+ ⌘- \tn % Row Count 17 (+ 2) % Row 11 \SetRowColor{white} Create new... & ⌘N \tn % Row Count 18 (+ 1) % Row 12 \SetRowColor{LightBackground} Surround with & ⌥⌘T \tn % Row Count 19 (+ 1) % Row 13 \SetRowColor{white} Highlight usages of a symbol & ⌘F7 \tn % Row Count 21 (+ 2) % Row 14 \SetRowColor{LightBackground} Expand/shrink a selection based on grammar & ⌥↑ ⌥↓ \tn % Row Count 23 (+ 2) % Row 15 \SetRowColor{white} Select/deselect any piece of code (multiple selections allowed) & ⌃G \tn % Row Count 26 (+ 3) \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}{Debug}} \tn % Row 0 \SetRowColor{LightBackground} Toggle breakpoint & ⌘F8 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Disable breakpoint & Click on the gutter while holding Alt \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Change breakpoint details & ⇧⌘F8 \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Step into (debug mode) & F7 \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} Step over (debug mode) & F8 \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} Step out (debug mode) & ⇧F8 \tn % Row Count 11 (+ 2) % Row 6 \SetRowColor{LightBackground} Resume (debug mode) & ⌥⌘R \tn % Row Count 12 (+ 1) % Row 7 \SetRowColor{white} Evaluate expression tool (debug mode) & ⌥F8 \tn % Row Count 14 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.83229 cm} x{1.14471 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Inspections}} \tn % Row 0 \SetRowColor{LightBackground} Go to next/previous problem & F2 ⇧F2 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Choose Quick Fix & ⌥⏎ \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Inspections are built-in static code analysis tools that help you find probable bugs, detect performance issues, and improve the overall code structure.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.53367 cm} x{1.44333 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Navigation}} \tn % Row 0 \SetRowColor{LightBackground} File Structure Popup & ⌘F12 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Recent Files Popup & ⌘E \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Select In Popup & ⌥F1 \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Navigate to Type & ⌘O \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Navigate to File & ⇧⌘O \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Navigate to Symbol & ⌥⌘O \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} Navigate to type declaration & ⇧⌘B \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} Navigate to declaration & ⌘B \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} Navigate to type hierarchy & ⌃H \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} Navigate to implementation(s) & ⌥⌘B \tn % Row Count 11 (+ 2) % Row 10 \SetRowColor{LightBackground} Navigate to super method & ⌘U \tn % Row Count 12 (+ 1) % Row 11 \SetRowColor{white} Navigate to test & ⇧⌘T \tn % Row Count 13 (+ 1) % Row 12 \SetRowColor{LightBackground} Search everywhere & Double Shift \tn % Row Count 15 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{2.78712 cm} p{2.18988 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Build and Run}} \tn % Row 0 \SetRowColor{LightBackground} Run & ⌃R \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Debug & ⌃D \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Once you've created a Run/Debug configuration by selecting Run | Edit Configurations from the main menu, you are able to run and debug your code.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.88206 cm} x{1.09494 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Finding Usages}} \tn % Row 0 \SetRowColor{LightBackground} Find Usages & ⌥F7 \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Set custom options for the Find Usages algorithm & \seqsplit{⌥⇧⌘F7} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Find in Path (if looking for plain text) & ⌘F \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Find Usages helps you quickly find all pieces of code referencing the symbol at the caret (cursor).} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.93183 cm} x{1.04517 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Version Control}} \tn % Row 0 \SetRowColor{LightBackground} VCS Operations Popup & ⌃V \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Version Control Tool Window & ⌘9 \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Commit changes & ⌘K \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Update project & ⌘T \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Push commits & ⇧⌘K \tn % Row Count 5 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}