dae2ee8ff0
Group customized keybindings to each package Add modules to cheatsheet Define free form text Add more documentation to packages Add projectile commands and descripts in text format Add commands for modules Add all keybinds of each module Better line separation Fix wrong location of avy and anzu keybindings Include cheatsheet in readme Add doc to generate pdf Add cheatsheet in TOC
348 lines
9.9 KiB
TeX
348 lines
9.9 KiB
TeX
\documentclass[10pt]{article}
|
|
\usepackage[margin=0.5cm,landscape,a3paper]{geometry}
|
|
\pagestyle{empty}
|
|
|
|
\usepackage{textcomp}
|
|
\usepackage{multicol}
|
|
\usepackage{menukeys}
|
|
\usepackage{enumitem}
|
|
\usepackage{xcolor}
|
|
\usepackage{xpatch}
|
|
\usepackage{xparse}
|
|
\usepackage{calc}
|
|
\usepackage{tcolorbox}
|
|
|
|
\pagecolor{black}
|
|
|
|
\definecolor{heading}{HTML}{5DCACB}
|
|
\definecolor{command}{HTML}{D8DA78}
|
|
\renewcommand\section[1]{\bigskip\par\textbf{\color{heading}\large#1}\smallskip}
|
|
\renewcommand\subsection[1]{\smallskip\par\textbf{\color{heading}#1}}
|
|
\newcommand\humanreadable[1]{{\par\color{orange}\small\sffamily#1}}
|
|
\newcommand\meta[1]{\textlangle\textit{#1}\textrangle}
|
|
\newcommand\keyify[1]{\color{pink}\ttfamily#1}
|
|
\newlist{keylist}{description}{1}
|
|
\setlist[keylist]{
|
|
topsep = 1pt,
|
|
labelindent = 1pt,
|
|
itemsep = -1ex,
|
|
labelwidth = \widthof{xxxxxxxxxxxxxx},
|
|
font = \keyify,
|
|
leftmargin = !,
|
|
before = \color{command}\sffamily
|
|
}
|
|
|
|
\setlength\parindent{0em}
|
|
\setlength\parsep{0ex}
|
|
\renewcommand\baselinestretch{1.2}
|
|
|
|
\begin{document}
|
|
\begin{multicols}{4}
|
|
|
|
\setlength{\columnsep}{1cm}
|
|
\begin{center}
|
|
\LARGE\color{heading}\textbf{Emacs Prelude Cheat Sheet}
|
|
\end{center}
|
|
|
|
\section{Getting Help in Emacs}
|
|
\begin{keylist}
|
|
\item[C-h k \meta{key}] \humanreadable{describe function bound to \meta{key}}
|
|
\item[C-h b] \humanreadable{list key-bindings for focused buffer}
|
|
\item[C-h m] \humanreadable{describe mode}
|
|
\item[C-h l] \humanreadable{show the keys you have pressed}
|
|
\item[C-h f] \humanreadable{describe function}
|
|
\end{keylist}
|
|
|
|
\section{Global}
|
|
\begin{keylist}
|
|
\item[C-x \textbackslash] align-regexp
|
|
\item[C-+] text-scale-increase
|
|
\item[C--] text-scale-decrease
|
|
\item[C-x O] \humanreadable{go to previous window}
|
|
\item[C-x m] eshell
|
|
\item[C-x M] \humanreadable{start a new eshell if one is active}
|
|
\item[C-x M-m] shell
|
|
\item[C-x C-m] smex
|
|
\item[C-h A] apropos
|
|
\item[C-h C-f] find-function
|
|
\item[C-h C-k] find-function-on-key
|
|
\item[C-h C-v] find-variable
|
|
\item[C-h C-l] find-library
|
|
\item[C-h C-i] info-display-manual
|
|
\item[C-<backspace>] \humanreadable{kill line backward and indent}
|
|
\item[C-o] (isearch-mode) isearch-occur
|
|
\item[M-/] hippie-expand
|
|
\item[C-x C-b] ibuffer
|
|
\item[<f11>] prelude-fullscreen
|
|
\item[<f12>] menu-bar-mode
|
|
\item[C-x g] magit-status
|
|
\item[C-x M-g] magit-dispatch-popup
|
|
\end{keylist}
|
|
|
|
\subsection{prelude}
|
|
|
|
\humanreadable{Keybindings defined in prelude mode}
|
|
\begin{keylist}
|
|
\item[C-c o] crux-open-with
|
|
\item[C-c g] prelude-google
|
|
\item[C-c G] prelude-github
|
|
\item[C-c y] prelude-youtube
|
|
\item[C-c U] prelude-duckduckgo
|
|
\item[C-a] crux-move-beginning-of-line
|
|
\item[S-<return>] crux-smart-open-line
|
|
\item[M-o] crux-smart-open-line
|
|
\item[C-S-<return>] crux-smart-open-line-above
|
|
\item[C-S-<up>] move-text-up
|
|
\item[C-S-<down>] move-text-down
|
|
\item[M-S-<up>] move-text-up
|
|
\item[M-S-<down>] move-text-down
|
|
\item[C-c n] crux-cleanup-buffer-or-region
|
|
\item[C-c f] crux-recentf-ido-find-file
|
|
\item[C-M-z] crux-indent-defun
|
|
\item[C-c u] crux-view-url
|
|
\item[C-c e] crux-eval-and-replace
|
|
\item[C-c s] crux-swap-windows
|
|
\item[C-c w] prelude-swap-meta-and-super
|
|
\item[C-c D] crux-delete-file-and-buffer
|
|
\item[C-c d] crux-duplicate-current-line-or-region
|
|
\item[C-c M-d] crux-duplicate-and-comment-current-
|
|
line-or-region
|
|
\item[C-c r] crux-rename-buffer-and-file
|
|
\item[C-c t] crux-visit-term-buffer
|
|
\item[C-c k] crux-kill-other-buffers
|
|
\item[C-c TAB] crux-indent-rigidly-and-copy-
|
|
to-clipboard
|
|
\item[C-c I] crux-find-user-init-file
|
|
\item[C-c S] crux-find-shell-init-file
|
|
\item[C-c i] imenu-anywhere
|
|
\item[s-p] projectile-command-map
|
|
\item[s-g] god-local-mode
|
|
\item[s-r] crux-recentf-ido-find-file
|
|
\item[s-j] crux-top-join-line
|
|
\item[s-k] crux-kill-whole-line
|
|
\item[s-m m] magit-status
|
|
\item[s-m l] magit-log
|
|
\item[s-m f] magit-log-buffer-file
|
|
\item[s-m b] magit-blame
|
|
\item[s-o] crux-smart-open-line-above
|
|
\end{keylist}
|
|
|
|
\subsection{ace-window}
|
|
\humanreadable{Quickly switch windows in Emacs}
|
|
\begin{keylist}
|
|
\item[s-w] ace-window
|
|
\end{keylist}
|
|
|
|
\subsection{avy}
|
|
|
|
\humanreadable{Effectively navigate to visible things}
|
|
\begin{keylist}
|
|
\item[C-c j] avy-goto-word-or-subword-1
|
|
\item[s-.] avy-goto-word-or-subword-1
|
|
\end{keylist}
|
|
\subsection{anzu}
|
|
|
|
\humanreadable{Enhances isearch \& query-replace by showing total matches and current match position}
|
|
\begin{keylist}
|
|
\item[M-\%] anzu-query-replace
|
|
\item[s-.] anzu-query-replace-regexp
|
|
\end{keylist}
|
|
|
|
\subsection{browse-kill-ring}
|
|
|
|
\humanreadable{Smarter kill-ring navigation}
|
|
\begin{keylist}
|
|
\item[s-y] browse-kill-ring
|
|
\end{keylist}
|
|
|
|
\subsection{crux}
|
|
|
|
\humanreadable{A Collection of Ridiculously Useful eXtensions for Emacs.}
|
|
\begin{keylist}
|
|
\item[C-\^] crux-top-join-line
|
|
\item[s-k] crux-kill-whole-line
|
|
\end{keylist}
|
|
|
|
\subsection{discover-my-major}
|
|
\humanreadable{A quick major mode help with discover-my-major.}
|
|
\begin{keylist}
|
|
\item[C-h C-m] discover-my-major
|
|
\end{keylist}
|
|
|
|
\subsection{easy-kill}
|
|
\humanreadable{Kill \& Mark Things Easily in Emacs.}
|
|
\begin{keylist}
|
|
\item[M-w] easy-kill
|
|
\item[C-M-SPC] easy-mark
|
|
\item[C-M-@] easy-mark
|
|
\end{keylist}
|
|
|
|
\subsection{expand-region}
|
|
\humanreadable{Increase selected region by semantic units.}
|
|
\begin{keylist}
|
|
\item[C-=] er/expand-region
|
|
\end{keylist}
|
|
|
|
\subsection{flycheck}
|
|
\humanreadable{On the fly syntax checking.}
|
|
\begin{keylist}
|
|
\item[C-t C-n] flycheck-next-error
|
|
\item[C-t C-p] flycheck-previous-error
|
|
\end{keylist}
|
|
|
|
\subsection{projectile}
|
|
\humanreadable{Project Interaction Library for Emacs.}
|
|
\begin{keylist}
|
|
\item[C-c p f] projectile-find-file
|
|
\item[C-c p p] projectile-switch-project
|
|
\item[C-c p d] projectile-find-dir
|
|
\item[C-c p r] projectile-replace
|
|
\item[C-c p T] projectile-find-test-file
|
|
\item[C-c p s g] projectile-grep
|
|
\item[C-c p s s] projectile-ag
|
|
\end{keylist}
|
|
|
|
\subsection{operate-on-number}
|
|
\humanreadable{Operate on number at point with arithmetic functions.}
|
|
\begin{keylist}
|
|
\item[C-c . +] apply-operation-to-number-at-point
|
|
\item[C-c . -] apply-operation-to-number-at-point
|
|
\item[C-c . *] apply-operation-to-number-at-point
|
|
\item[C-c . /] apply-operation-to-number-at-point
|
|
\item[C-c . \textbackslash] apply-operation-to-number-at-point
|
|
\item[C-c . \textasciicircum] apply-operation-to-number-at-point
|
|
\item[C-c . <] apply-operation-to-number-at-point
|
|
\item[C-c . >] apply-operation-to-number-at-point
|
|
\item[C-c . \#] apply-operation-to-number-at-point
|
|
\item[C-c . \%] apply-operation-to-number-at-point
|
|
\item[C-c . '] operate-on-number-at-point
|
|
\end{keylist}
|
|
|
|
\subsection{zop-to-char}
|
|
\humanreadable{A more powerful alternative to zap-to-char.}
|
|
\begin{keylist}
|
|
\item[M-z] zop-up-to-char
|
|
\item[M-Z] zop-to-char
|
|
\end{keylist}
|
|
|
|
\section{Modules}
|
|
\subsection{prelude-ido}
|
|
\begin{keylist}
|
|
\item[M-x] smex
|
|
\item[M-X] smex-major-mode-commands
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-ivy}
|
|
\begin{keylist}
|
|
\item[C-c C-r] ivy-resume
|
|
\item[<f6>] ivy-resume
|
|
\item[C-s] swiper
|
|
\item[M-x] counsel-M-x
|
|
\item[<f1> f] counsel-describe-function
|
|
\item[<f1> v] counsel-describe-variable
|
|
\item[<f1> l] counsel-find-library
|
|
\item[<f1> i] counsel-info-lookup-symbol
|
|
\item[<f1> u] counsel-unicode-char
|
|
\item[C-c g] counsel-git
|
|
\item[C-c j] counsel-git-grep
|
|
\item[C-c k] counsel-ag
|
|
\item[C-x l] counsel-locate
|
|
\item[C-r] (minibuffer) counsel-minibuffer-history
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-helm}
|
|
\begin{keylist}
|
|
\item[C-c h o] helm-occur
|
|
\item[C-c h g] helm-do-grep
|
|
\item[C-c h C-c w] helm-wikipedia-suggest
|
|
\item[C-c h SPC] helm-all-mark-rings
|
|
\item[C-c p h] helm-projectile
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-helm-everywhere}
|
|
\begin{keylist}
|
|
\item[M-x] helm-M-x
|
|
\item[C-c C-m] helm-M-x
|
|
\item[M-y] helm-show-kill-ring
|
|
\item[C-x b] helm-mini
|
|
\item[C-x C-b] helm-buffers-list
|
|
\item[C-x C-f] helm-find-files
|
|
\item[C-h f] helm-apropos
|
|
\item[C-h r] helm-info-emacs
|
|
\item[C-h C-l] helm-locate-library
|
|
\item[C-c f] (prelude-mode) helm-recentf
|
|
\item[C-c C-l] (minibuffer-local) help-minibuffer-history
|
|
\item[C-o] (isearch-mode) helm-occur-from-isearch
|
|
\item[C-c C-l] (shell-mode) helm-comint-input-ring
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-key-chord}
|
|
\begin{keylist}
|
|
\item[jj] avy-goto-word-1
|
|
\item[jl] avy-goto-line
|
|
\item[jk] avy-goto-char
|
|
\item[JJ] crux-switch-to-previous-buffer
|
|
\item[uu] undo-tree-visualize
|
|
\item[xx] execute-extended-command
|
|
\item[yy] browse-kill-ring
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-evil}
|
|
\begin{keylist}
|
|
\item[C-A] (normal-state) evil-numbers/inc-at-pt
|
|
\item[C-S-A] (normal-state) evil-numbers/dec-at-pt
|
|
\item[>] (visual-state) prelude-shift-right-visual
|
|
\item[<] prelude-shift-left-visual
|
|
\item[C-S-d] prelude-evil-scroll-down-other-window
|
|
\item[C-S-u] prelude-evil-scroll-up-other-window
|
|
\item[K] (magit-branch-manager-mode)\\
|
|
(emacs-state) magit-discard
|
|
\item[L] (magit-branch-manager-mode)\\
|
|
(emacs-state) magit-log-popup
|
|
\item[K] (magit-status-mode) (emacs-state) magit-discard
|
|
\item[l] (magit-status-mode) (emacs-state)\\
|
|
magit-log-popup
|
|
\item[h] (magit-status-mode) (emacs-state)\\
|
|
magit-diff-toggle-refine-hunk
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-emacs-lisp}
|
|
\begin{keylist}
|
|
\item[C-c C-z] prelude-visit-ielm
|
|
\item[C-c C-c] eval-defun
|
|
\item[C-c C-b] eval-buffer
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-go}
|
|
\begin{keylist}
|
|
\item[C-c a] go-test-current-project
|
|
\item[C-c m] go-test-current-file
|
|
\item[C-c .] go-test-current-test
|
|
\item[C-c b] go-run
|
|
\item[C-c h] godoc-at-point
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-ocaml}
|
|
\begin{keylist}
|
|
\item[C-c C-s] utop
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-org}
|
|
\begin{keylist}
|
|
\item[C-c l] org-store-link
|
|
\item[C-c a] org-agenda
|
|
\item[C-c b] org-iswitchb
|
|
\end{keylist}
|
|
|
|
\subsection{prelude-rust}
|
|
\begin{keylist}
|
|
\item[C-c C-d] racer-describe
|
|
\end{keylist}
|
|
|
|
\end{multicols}
|
|
\end{document}
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: t
|
|
%%% End:
|