Files
dotfiles/thoom-emacs/TODO.org
2024-04-18 14:58:36 -07:00

212 lines
7.0 KiB
Org Mode

#+title: Emacs TODOs
#+STARTUP: content
* High Priority
** persist scratch buffer
*** scratch keybind
** make project.el see Seafile/Notes as a project
** copy-region-for-reddit
* keybindings
** emacs
*** expand C-a to jump to the first place after the bullet in org-mode
*** center cursor after page up / page down
https://karthinks.com/software/more-less-emacs/#bonus-half-screen-scrolling
*** previous/next buffer
** dired
https://github.com/alexluigit/dirvish
*** toggle hidden files
** eshell toggle
call e-shell globally
previous buffer in eshell-mode
** open project straight to magit
** free keys
*** C-z
*** C-t
*** C-o
*** C-j
*** C-'
*** C-,
*** M-r
*** C/M-`
*** C/M-1
*** M-i
* read docs/configure
** when opening help buffer, focus it so I can q out
** eshell
https://www.masteringemacs.org/article/complete-guide-mastering-eshell
https://github.com/iostapyshyn/eshell-vterm
** tramp
*** multi-hop
specifically ssh -> docker
https://github.com/emacs-pe/docker-tramp.el
https://www.emacswiki.org/emacs/TrampAndDocker
** embark
https://karthinks.com/software/fifteen-ways-to-use-embark/
** Emacs everywhere
https://github.com/tecosaur/emacs-everywhere
** avy
https://karthinks.com/software/avy-can-do-anything/
** xref
*** dumb-jump
** yasnippet
*** org src blocks
** undo-tree
** vertico
** mwim
** marginalia
** treesit-auto
https://github.com/renzmann/treesit-auto
** orderless
** consult
*** consult-yank-from-kill-ring
** repeat-mode
https://karthinks.com/software/it-bears-repeating/
** corfu
** cape
https://takeonrules.com/2022/01/17/switching-from-company-to-corfu-for-emacs-completion/
*** complete files and lines
** org
*** TAB should cycle when at end of folded header line
*** keybind C-c C-c for committing code block changes
*** keybind C-c n for narrow
*** switch to use-package repeat-map for C-c C-n/p
*** better binds for moving subtrees
*** transclude
https://github.com/nobiot/org-transclusion
*** roam
*** beautify
https://zzamboni.org/post/beautifying-org-mode-in-emacs/
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
** magit
*** Fix magit invisible changes in terminal
** lsp-mode
*** lsp-booster
https://github.com/blahgeek/emacs-lsp-booster
** code folding
*** outli
** combobulate
** emacs-chrome
https://github.com/stsquad/emacs_chrome
** devdocs
https://github.com/astoff/devdocs.el
** vundo
https://github.com/casouri/vundo
** popper
* port doom config.el
** 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 "."))
#+end_src
* line wrapping
https://elpa.gnu.org/packages/adaptive-wrap.html
* languages
** python
** rust
* Cheatsheet
** Movement commands
| Unit | Move | Kill | Mark | Transpose | Notes |
|--------------+---------+---------------------+-----------+-----------+--------------------------------------|
| Word | M-b/f | M-d / M-DEL / C-DEL | M-@ | M-t | M- b/f/d/DEL |
| Sentence | M-a/e | M-k / C-x DEL | | M-x t-s | M- a/e/k |
| Paragraph | M-{/} | | M-h | M-x t-p | |
| Line | C-n/p | C-k / C-S-DEL | | C-x C-t | Join with M-^, delete blanks C-x C-o |
| Sexp | C-M-b/f | C-M-k / C-M-DEL | C-M-<SPC> | C-M-t | C-M- b/f/k/DEL |
| List in/out | C-M-d/u | | | | |
| List sibling | C-M-n/p | | | | |
| Defun | C-M-a/e | | C-M-h | | |
| Screenful | C/M-v | | | | |
| Other window | C-M-v/V | | | | |
| Buffer | M-</> | | C-x h | | |
** Isearch
| Binding | Command |
|-----------+------------------------------------|
| C-w | Add word at point to search |
| M-s c | Toggle case sensitive |
| M-s r | Toggle regex |
| M-s w | Toggle word mode |
| M-s _ | Toggle symbol mode |
| M-s <SPC> | Toggle lax whitespace matching |
| M-s ' | Toggle character folding (pg 160) |
| M-s M-. | Isearch forward for thing at point |
| M-s o | Occur mode |
** Comment
M-; DWIM
C-x C-; Line
** Jump to last mark
C-u C-SPC
** 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
** use-package 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
** Act on other window with C-x 4 [...]
** Tab commands on C-x t
#+begin_src elisp
(global-set-key (kbd "M-[") 'tab-bar-history-back)
(global-set-key (kbd "M-]") 'tab-bar-history-forward)
#+end_src
* 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 <A>] '<B>)
remaps all keybindings that refer to <A> to <B>
** repeat-mode
describe-repeat-maps to see which keys repeat
** 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
** Macros (p226)
F3 start record / insert counter
F4 stop record / play macro
C-x ( start reocrd
C-x ) stop record
C-x e playback
C-0 F4 repeat macro until error
** Indentation
C-x TAB with a region enters an interactive indentation mode
** Alignment (p250)
** auto-revert-tail-mode
** M-| pipes region to shell command
replaces region if invoked with C-u
* 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/