350 lines
10 KiB
TeX
350 lines
10 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}
|
|
|
|
\definecolor{default}{HTML}{333333}
|
|
\definecolor{heading}{HTML}{000000}
|
|
\definecolor{command}{HTML}{666666}
|
|
\definecolor{key}{HTML}{268BD2}
|
|
|
|
\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{default}\small\sffamily#1}}
|
|
\newcommand\meta[1]{\textlangle\textit{#1}\textrangle}
|
|
\newcommand\keyify[1]{\color{key}\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
|
|
\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-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
|
|
\item[C-c .] racer-find-definition
|
|
\item[C-c ,] pop-tag-mark
|
|
\end{keylist}
|
|
|
|
\end{multicols}
|
|
\end{document}
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: t
|
|
%%% End:
|