#+title: Emacs TODOs #+STARTUP: content * Cheatsheet ** Zoom in/out C-x C-[0/-/=] has repeat map ** use-package key bindings Can remap functions as well as keys #+begin_src emacs-lisp (use-package unfill :bind ([remap fill-paragraph] . unfill-toggle)) #+end_src ** Supports repeat-map #+begin_src emacs-lisp (use-package git-gutter+ :bind (:repeat-map git-gutter+-repeat-map ("n" . git-gutter+-next-hunk) ("p" . git-gutter+-previous-hunk) ("s" . git-gutter+-stage-hunks) ("r" . git-gutter+-revert-hunk))) #+end_src ** shortdoc-display-group shows useful documentation summary on various categories of things * mine for ideas https://github.com/daviwil/emacs-from-scratch/blob/9388cf6ecd9b44c430867a5c3dad5f050fdc0ee1/Emacs.org https://tony-zorman.com/posts/2022-10-22-emacs-potpourri.html https://www.masteringemacs.org/article/demystifying-emacs-window-manager https://github.com/emacs-tw/awesome-emacs https://www.reddit.com/r/emacs/comments/x43eie/heres_a_list_of_emacs_keyboard_shortcuts_that_i/ * keybindings ** emacs better bindings for page up / page down / home / end center cursor after page up / page down https://karthinks.com/software/more-less-emacs/#bonus-half-screen-scrolling ** org-evil bindings M-hjlk for moving headings ** meow *** equivalent of gd/gu (use embark?) *** disable completing-read for meow-visit *** equivalent of r (replace character under point, don't enter insert mode) *** equivalent of . for repeating edits *** learn kmacros ability to scrape recent history for new macro ** try alternatives to meow *** boon *** xah-fly-keys *** god-mode *** kakoune.el *** back to evil ** dired https://github.com/alexluigit/dirvish *** toggle hidden files * read docs/configure ** magit ** eshell https://www.masteringemacs.org/article/complete-guide-mastering-eshell https://github.com/iostapyshyn/eshell-vterm ** tramp *** multi-hop specifically ssh -> ssh -> docker https://github.com/emacs-pe/docker-tramp.el https://www.emacswiki.org/emacs/TrampAndDocker ** whitespace cleanup https://batsov.com/articles/2011/11/25/emacs-tip-number-3-whitespace-cleanup/ ** straight *** lockfile ** corfu https://takeonrules.com/2022/01/17/switching-from-company-to-corfu-for-emacs-completion/ ** embark https://karthinks.com/software/fifteen-ways-to-use-embark/ *** better binding for moving org subtrees *** tagging org header ** vertico ** avy ** marginalia ** orderless ** consult ** corfu https://www.youtube.com/watch?v=Vx0bSKF4y78 ** org *** C-RET should enter meow insert state *** TAB should cycle sub-folds *** TAB should cycle when at end of folded header line *** keybind for narrow *** switch to use-package repeat-map for C-c C-n/p *** transclude https://github.com/nobiot/org-transclusion *** beautify https://mstempl.netlify.app/post/beautify-org-mode/ https://github.com/Gavinok/emacs.d/blob/main/lisp/org-config.el https://github.com/minad/org-modern **** hide markup characters **** org-modern ** see if multiple-cursors works with meow at all ** code folding ** symex ** rigpa https://github.com/countvajhula/rigpa * modeline ** diminish/delight * port doom config.el ** set font to Fira Code ** reveal in finder #+begin_src emacs-lisp (defun first-executable (candidates) (seq-find #'executable-find candidates)) ;; Reveal in finder/nautilus/whatever (defun reveal-in-file-browser () (interactive) (call-process (first-executable '("xdg-open" "open")) nil nil nil ".")) (map! :leader :desc "Reveal" "o o" #'reveal-in-file-browser) #+end_src * line wrapping https://elpa.gnu.org/packages/adaptive-wrap.html * Fix magit invisible changes in terminal * when opening help buffer, focus it so I can q out * Deconflict Emacs and Kitty hotkeys * if nix in path, prefer nix versions of emacs packages don't use :straight t in use-package declarations instead, have section that conditionally runs straight-use-package directives if necessary * install ** yasnippet/tempo ** mwim ** undo-tree ** parinfer ** eglot / lsp-mode * languages ** python ** nix https://github.com/elkowar/rnix-lsp ** typescript ** web-mode * meow ** questions *** Why does xy copy the newline but x;y doesn't? *** Beacon mode How does beacon mode decide whether a movement creates all possible cursors or just one? How to express "insert before the second word of the line"? Why doesn't visit work consistently in beacon mode? *** defining C- keys in normal mode seems to fuck everything up for some reason ** sexp state ** try dot mode https://github.com/wyrickre/dot-mode ** notes *** r replaces selection with yank buffer * Notes from Mastering Emacs ** C-x # in emacsclient says "done with current buffer" ** C-x 8 RET (insert-char) for to insert weird characters ** C-h m (describe-mode) ** I in embark goes to manual ** (global-set-key [remap ] ') remaps all keybindings that refer to to ** repeat-mode describe-repeat-maps to see which keys repeat ** tab-bar-mode replacement for perspective.el offers window configurations as tabs, similar to iTerm/Kitty also look into tab history mode ** bookmarks C-x r (m)ark, (l)ist, jump to (b)ookmark ** registers C-x r (s)tore region, (i)nsert contents C-x r (SPC) store point, (j)ump to register ** highlighters M-s h keymap also H in embark ** auto-revert-tail-mode ** M-| pipes region to shell command replaces region if invoked with C-u