+#+title: My Personal Init Customization
+#+OPTIONS: toc:nil num:nil ^:nil
+
* python disabled due to long load time
todo: get smart-operator to work
todo, checkout https://github.com/python-rope/ropemacs refactoring python,
resizing a window horizontally with the mouse should be allowed in more places
* TODO try using / making abbreviations
+
+* TODO move over to ivy, ditch ido
+
+* key binds. keep at end of file
+this should come at the end because it depends on key maps being
+created in earlier sections.
+
+** emacs keys notes
+commands not needed in ido mode and their replacement in ido mode
+spell check fix -> use current pattern and start new one
+narrow -> create subdirectory
+org-cycle -> M-s search recently used directory
+vert split Window -> create file instead of select match
+delete-other-windows -> open dired buffer
+delete current window -> delete buffer/file
+find file -> search within all subdirectories
+
+forward/back error
+
+buffer select -> toggle find file / buffer
+up/down -> next/previous history
+forward/back -> ido-forward/back
+
+
+right keyboard attributes: movement, involve typing words
+left keyboard attributes: non-typing universal non-movement
+
+
+
+
+todo
+fix global unpop mark ring
+setup helm
+learn cedet and projectile and helm
+setup key for pop-global-mark
+try out C-M-\ indent region
+set quoted insert to some obscure keybind
+make currently overrided M-u uppercase word into something obscure
+remember mode
+bind shell-command to something better
+investigate tags
+investigate keys in isearch mode and find file mode
+try out occur. M-s o
+investigate programming modes. M-g n/b next/previous error. gdb?
+investigate org mode keys
+learn version control
+learn mail
+check out imenu
+bind capitalize-word to something obscure
+sentance/paragraph movement/marking should be swapped with sexp/paren movement based on mode
+bind fill-paragraph to something obscure
+setup linewise paste
+install magit (git control)
+magpie expansion provides a completion key for acronym expansion based on buffer text
+learn ediff
+universal google
+figure out auto-indent
+learn eshell and prelude settings for it
+combine register prefix and c-x prefix
+note: remember to think of mouse & foot pedals
+commands to change: select other window: C-x o.
+
+** named commands
+*** gdb
+gdb-many-windows
+*** tramp sudo
+/ssh:host|sudo:host:
+when in the same session, you can then do:
+/sudo:root@host:
+
+*** org insert table row
+[org-shiftmetadown/up]
+*** toggle line continuation / truncation / wrap
+ toggle-truncate-lines
+*** auto-save on/off
+ my-as-on/my-as-off
+*** toggle menu bar
+menu-bar-mode
+*** show abbreviations
+list-abbrevs
+
+*** rename-file-and-buffer
+*** ediff-buffers
+*** refill-mode
+automatically balance a paragraph with newlines
+*** executable-make-buffer-file-executable-if-script-p
+make a script executable
+*** (setq lazy-highlight-cleanup nil)
+keep search highlight on after search is done
+*** auto-revert-tail-mode
+tail a file
+*** what-line
+*** linum-mode
+line numbers
+
+*** sgml-pretty-print
+format xml in nxml-mode
+*** visual-line-mode
+toggle word wrap.
+** compound commands
+*** C-xc
+exit0
+*** C-x s
+save file
+*** C-x e
+eval last sexp
+*** C-c -
+[org insert table horizontal line or create list]
+*** C-x tab
+indent/dedent region
+
+*** C-x *
+[calc-dispatch]
+*** C-x =
+[point information]
+*** C-x d
+[dired]
+*** C-xb
+[ibuffer]
+
+*** C-x r c
+rectangular clear, replace area with whitespace
+** gnus
+searching overview.
+3 types:
+ingroup searching
+nnir searching with notmuch, specific group (not sure if it can do multiple)
+search all groups with mairix
+*** a]
+compose new message
+*** C-c C-c]
+send message
+*** s]
+save newsrc file, alterations to groups.
+*** g]
+gnus refresh / get new
+*** m]
+gnus new message
+*** F]
+gnus quoted reply all
+*** e]
+gnus draft edit message
+*** delete]
+gnus delete draft
+#+begin_src emacs-lisp
+(add-hook 'gnus-startup-hook
+ (lambda ()
+ (define-key gnus-summary-mode-map (kbd "<delete>") 'gnus-summary-delete-article)))
+#+end_src
+
+*** b]
+mairix search
+#+begin_src emacs-lisp
+(add-hook 'gnus-startup-hook
+ (lambda ()
+ (define-key gnus-group-mode-map "b" 'nnmairix-search)
+ (define-key gnus-summary-mode-map "b" 'nnmairix-search)))
+#+end_src
+*** B m]
+move message, or messages in region
+*** #]
+mark article, move with B m
+*** B delete]
+gnus delete draft
+*** / plus x a / b]
+search current group (or see info manual for more groups),
+using the gnus native search (its slow, do a notmuch or mairix search instead)
+x= extra (ie. to)
+todo; send in patch to make author search to in sent folder
+a = author
+/ = subject
+b = body
+see C-h m for a full list
+*** G G ]
+do a nnir notmuch search, for the group on the current line
+*** A T ]
+jump to thread from nnir group
+
+*** marks]
+! = saved for later
+E = expired
+M-& apply process mark to a non-process mark command
+*** S D e]
+edit as new
+*** T k / C-M-k
+maybe rebind this to a shorter keybind, like del
+gnus-summary-kill-thread
+** message mode
+*** C-ck]
+discard message
+** notmuch
+*** space]
+notmuch advance to next message/thread
+
+** readline / bash / .inputrc
+*** C-m
+[--------]
+terminal crap, duplicate of enter
+
+** isearch
+*** C-w
+paste word/char under cursor into isearch
+*** M-n/p
+next/previous isearch history
+*** C-o
+*** m-r
+
+** icomplete
+*** C-. C-,
+icomplete-forward/backward-completions
+
+** info
+*** [, ]
+forward / previous node, descend/ascend tree as needed
+*** x
+Info-follow-nearest-node
+
+m, f, n, p or ^ command, depending on where you click.
+** auto-complete
+*** S-return
+select next completion candidate
+ac-expand
+** agenda
+*** t]
+agenda cycle todo state
+** org
+*** C-c / t]
+make just todo items visible
+*** S-<tab>
+org-shifttab global visibility cycle / move table cell
+*** C-cs]
+schedule todo item
+*** C-cx p]
+org set property
+*** C-c -]
+org insert horizontal line
+*** C-cq]
+ org tag
+** calc
+i'd like to drill these sometime when I have space in my head, or I
+plan to use calc.
+*** space
+[enter input to the stack, or duplicate top stack item]
+*** C-M-i
+[cycle 3 elements on stack]
+*** tab
+[cycle 2 elements on stack]
+*** n
+[negate]
+*** _
+[begin negative number]
+*** /
+[reciprocal]
+*** x
+[calc named command]
+*** M-delete
+[delete 2nd from top of stack]
+*** C-u [-]0-9
+[0=whole stack, 1-9=that many, -1-9=that element]
+*** delete
+[remove from the top of the stack]
+*** '
+[algebraic mode. infix expressions are calculated when input to the stack]
+*** m a
+[auto algebraic mode]
+*** $,$$,$$$
+[top x of stack reference]
+*** s s/t/r/u
+[store to variable: store, top, retrieve, unstore. the quick variables 0-9 don't need s prefix]
+*** U/D
+[undo/redo]
+*** t p/n/]/y
+[trail prev/next/end/yankh]
+*** `
+[calc edit mode, to edit the top of stack]
+
+* keybind tables
+
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | left primary | C- | M- | C-M- | C-S- |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | 2 | copy-symbol | shell-cd-to-file | --- | |
+ | 3 | dot-mode-execute | | recenter-top-bottom | |
+ | q | org-cycle, comint previous arg | org-archive-to-archive-sibling | quoted-insert | |
+ | w | goto-t.org | org-clock-in | | |
+ | e | copy-line | org-clock-in-last | | |
+ | r | isearch-backward | org-clock-out | | |
+ | a | copy-all | | | |
+ | s | C-x prefix | | split-window-vertically | |
+ | d | C-c prefix | | swap buffer | |
+ | f | kill-whole-line | print-var-at-point | kill rest of line | |
+ | g | other-window / cancel | abort-recursive-edit | gnus | |
+ | z | undo-tree-undo | | | |
+ | x | kill-region | append-next-kill | append-next-kill | |
+ | c | copy | org-capture | copy-to-register | |
+ | v | yank | insert-register | yank pop | |
+ | b | delete-other-windows | isearch-backward-current-symbol | isearch-current-symbol | |
+ | tab | yas-insert-snippet | indent line | | |
+ | delete | kill-symbol | | kill-sexp | |
+ | left-arrow | compile | | org-shiftup | |
+ | right-arrow | paste selection | | org-shiftdown | |
+ | backspace | backward-kill-symbol | | backward-kill-sexp | |
+ | f7 | | | | |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | right primary | C- | M- | C-M- | C-S- |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | * | split-window-horizontally | | calc-dispatch | |
+ | 9 | delete-window-or-exit | kill-buffer-and-window | kill client buffer | |
+ | u | universal-argument | | search-keybind | |
+ | i | ----- | | query-replace-regexp | |
+ | o | occur | | counsel-imenu | |
+ | p | move-mouse-to-point | | delete-horizontal-space | |
+ | j | pop-to-mark | previous-error | register prefix | |
+ | k | jump to register | next-error | man | |
+ | l | ivy-switch-buffer | | move cursor top bottom mid | |
+ | ; | comment-dwim | comment-dwim | comment-current-line-dwim | |
+ | m | | | recursive grep | |
+ | , | counsel-find-file | | find-file-in-project | |
+ | . | recentf-ido-find-file | | - | |
+ | / | join lines | | copy-variable | |
+ | 8 | calc-embedded-word | | | |
+ | up-arrow | back defun/headline | | | winner undo |
+ | down-arrow | forward dfun/headline | | toggle-mark-activation | smex-major-mode-commands |
+ | lbracket | ---- | | scroll-right | |
+ | rbracket | fill-paragraph | | scroll-left | |
+ | return | newline next line | non-indented newline | open newline on previous line | |
+ | space | org-edit-special | | spell check word | |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | left secondary | C- | M- | C-M- | C-S- |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | = | | | | |
+ | 1 | | | | |
+ | 4 | | | widen | |
+ | 5 | | | | |
+ | tab-key | query-replace | | | |
+ | t | org change todo state | | org insert timestamp | |
+ | home | start of buffer | | | |
+ | end | end of buffer | | | |
+ | f9 | | | | |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | right secondary | C- | M- | C-M- | C-S- |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+ | 6 | save-buffers-kill-emacs | | insert-small-copyright | |
+ | 7 | | | insert-full-copyright | |
+ | 0 | text-scale-reset | | insert-apache | |
+ | - | | | org-edit-src-exit | |
+ | y | undo-tree-redo | | | |
+ | \ | sr-speedbar-toggle | | mark-defun | |
+ | h | help-prefix | | | |
+ | ' | eval-expression | | | |
+ | n | unpop-to-mark-command | | narrow-to-region | |
+ | rshift | | | | |
+ | escape | find-tag | | | |
+ |-----------------+--------------------------------+---------------------------------+-------------------------------+--------------------------|
+
+* keybind notes
+common keys, which would be better off doing swaps than rebinds:
+c-x prefix -> c-s
+c-c prefix -> c-d
+yank c-y -> c-c
+search c-s -> kp-add
+kill line c-k -> c-f
+undo c-_ -> c-z
+set-mark-command c-@ -> kp-enter
+quoted-insert c-q -> c-m-q
+recenter-top-bottom c-l -> c-m-3
+kill-region c-w -> c-x
+
+commands to make less accessible
+narrow-to-defun/subtree -> M-2 maybe
+occur
+
+command to make more accessible, ...
+
+
+* TESTING / DEVELOPMENT AREA
+
+(defun comint-send-string (process string)
+ "Like `process-send-string', but also does extra bookkeeping for Comint mode."
+ (if process
+ (with-current-buffer (if (processp process)
+ (process-buffer process)
+ (get-buffer process))
+ (comint-snapshot-last-prompt))
+ (comint-snapshot-last-prompt))
+ (process-send-string process string))