X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=init.el;h=4680f0674dbec6e392a7bdd6ad7dc839d4865b5d;hb=76bff17954693088ea7a459a45748e6bde6a1715;hp=6b9094f3983550ebbb26f913042eacc58772cff5;hpb=a26bf7fee70786c51a4a0a9485212c6430d02f6b;p=dot-emacs diff --git a/init.el b/init.el index 6b9094f..4680f06 100644 --- a/init.el +++ b/init.el @@ -218,7 +218,7 @@ Fourth argument TYPE is the custom option type." ;; nnfolder-generate-active-file ;; to reset things, when changing mail group. I duno all the proper way, but it works to delete - ;; ~/Mail ~/.newsrc.eld ~/.dribble (or something) + ;; ~/Mail ~/.newsrc.eld ~/.newsrc-dribble ;;;;; mail sources vs select methods background @@ -249,8 +249,6 @@ Fourth argument TYPE is the custom option type." ;;; things that should be at the beginning - ;; todo, evaluating this manually disables debug on error instead of toggling it - (toggle-debug-on-error) ;uncomment to help debug and catch errors ;; packages installed from package manager: i pretty much prioritize repos this way: gnu, then melpa, then marmalade. @@ -300,9 +298,9 @@ Fourth argument TYPE is the custom option type." ;; '("marmalade" . ;; "http://marmalade-repo.org/packages/")) - (add-to-list 'package-archives - '("melpa" . "http://melpa.milkbox.net/packages/") t) - (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) + (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) + ;; down atm 2020-08-30 + ;;(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) ;; keep our init.el clean, by moving customization elisp to it's own file @@ -311,6 +309,7 @@ Fourth argument TYPE is the custom option type." + ;;; abreviations ;; turn on abbrev mode globally (setq-default abbrev-mode t) @@ -408,7 +407,7 @@ Fourth argument TYPE is the custom option type." ;;; readline complete fix - ;; I need this function here, where INSIDE_EMACS is replaced with RLC_INSIDE_EMACS. + ;; I need this function here, where INSIDE_EMACS is replaced with LC_INSIDE_EMACS. ;; ian: last update 2017-1-7. update this periodically from upstream ;; like when we do a major emacs update (defun comint-exec-1 (name buffer command switches) @@ -427,7 +426,7 @@ Fourth argument TYPE is the custom option type." (format "COLUMNS=%d" (window-width))) (list "TERM=emacs" (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))) - (list (format "RLC_INSIDE_EMACS=%s,comint" emacs-version)) + (list (format "LC_INSIDE_EMACS=%s,comint" emacs-version)) process-environment)) (default-directory (if (file-accessible-directory-p default-directory) @@ -668,6 +667,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer." (load-theme arg t)) (setq color-theme-is-global t) + ;; temporary, make night be default + (defun toggle-night () (interactive) (cond ((equal (car custom-enabled-themes) 'naquadah) @@ -752,7 +753,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer." ;; Save a list of recent files visited. (recentf-mode 1) - (setq recentf-max-saved-items 200 + (setq recentf-max-saved-items 400 recentf-max-menu-items 15) @@ -855,6 +856,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer." (eval-after-load "mu4e" '(my-mu4e-init)) (setq + ;; https://github.com/djcb/mu/issues/1025 + mail-user-agent 'mu4e-user-agent ;; common to gnus. default sendmail-query-once asks us, then sets this via customize. send-mail-function (quote sendmail-send-it) ;; use the standard imap folders @@ -880,6 +883,12 @@ A non-nil CURRENT-ONLY argument means save only current buffer." mu4e-cache-maildir-list t ;; default is 8, way too small for my big monitors mu4e-headers-visible-lines 50 + message-sendmail-envelope-from 'header + ;; trying this out + ;;mu4e-view-use-gnus t + ;; had problems where mu4e and gnus would hang verifying signatures, gnus man + ;; said this should help, but it didnt work. they still got verified. + ;; mm-verify-option 'never ) ;; fucks up reading unread bookmark. when that is fixed, enable it @@ -905,7 +914,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer." ))) (add-hook 'mu4e-view-mode-hook 'my-decrypt) - (defun mu-set-from-name (regexes) + (defun iank-set-from-name (regexes) "If we find an address matching regex, then set that address as the to, and whatever was used" (when mu4e-compose-parent-message @@ -915,17 +924,25 @@ and whatever was used" regexes (cdr regexes) found (mu4e-message-contact-field-matches mu4e-compose-parent-message :to re))) - (when found (setq user-mail-address (cdr found) - user-full-name (car found))) + (when found + (setq user-full-name (car found)) + ;; we get an error unless we do this. that is a bug. I could + ;; send a patch... also a bug: setting message-from-style nil + ;; doesnt work in mu4e unless user-full-name is also nil. + (unless user-full-name + (setq message-from-style nil)) + (setq user-mail-address (cdr found) + mail-signature nil)) found))) - (defun mu-set-from (regexes) + (defun iank-set-from (regexes) "If we find an address matching regex, then set that address as the to, and Ian Kelling as the name" (when mu4e-compose-parent-message (let ((found nil)) (while (and regexes (not found)) (setq re (car regexes) - regexes (cdr regexes) + sig (cadr regexes) + regexes (cddr regexes) found (cdr (mu4e-message-contact-field-matches mu4e-compose-parent-message :to re)))) (when found (setq user-mail-address found @@ -933,16 +950,6 @@ and Ian Kelling as the name" found))) - (defun my-mu4e-to-fsf () - "inspired by mu4e info manual, search for mu4e-compose-pre-hook." - (cond - ((mu-set-from '("iank@fsf.org" - "iank@gnu.org"))) - ((setq user-mail-address "iank@fsf.org" - user-full-name "Ian Kelling")))) - - - ;; on first run mkdir -p /nocow/user/.mufsf; mu index --maildir=/nocow/user/fsfmd (defun mu-exit-wait () (interactive) ;; taken from the mu source @@ -955,41 +962,16 @@ and Ian Kelling as the name" (defun fsf-mu4e () (interactive) - (require 'mu4e) - (unless (equal mu4e-maildir "/nocow/user/fsfmd") (mu-exit-wait)) + (my-mu4e-commmon) (setq - ;; fsf monitor is smaller - mu4e-headers-visible-lines 15 - mu4e-maildir "/nocow/user/fsfmd" - mu4e-refile-folder "/Spam" - mu4e-index-lazy-check nil - mu4e-get-mail-command "true" user-mail-address "iank@fsf.org" + iank-user-mail-address user-mail-address ;; WARNING: be careful editing this, there needs to be a space after --, and my editor ;; and git will automatically remove it unless i manually disable it. - mail-signature " - --- -Ian Kelling | Senior Systems Administrator, Free Software Foundation -GPG Key: B125 F60B 7B28 7FF6 A2B7 DF8F 170A F0E2 9542 95DF -https://fsf.org | https://gnu.org -" - - mu4e-user-mail-address-list '("iank@fsf.org" - "iank@gnu.org") - mu4e-maildir-shortcuts - '( ("/INBOX" . ?i) - ("/sysadmin" . ?a) - ("/sec" . ?x) - ("/rtcc" . ?c) - ("/Drafts" . ?d) - ("/Sent" . ?s) - ) + mail-signature fsf-sig ) ;; end setq - (call-process "/a/exe/lnf" nil nil nil "-T" "/nocow/user/.mufsf" (concat (getenv "HOME") "/.mu")) - (add-hook 'mu4e-compose-pre-hook 'my-mu4e-to-fsf) - (remove-hook 'mu4e-compose-pre-hook 'my-mu4e-to) - (mu4e)) ;; end defun fsf-mu4e + (add-hook 'mu4e-compose-pre-hook 'my-mu4e-to) + (mu4e)) @@ -1177,10 +1159,10 @@ https://fsf.org | https://gnu.org (add-hook 'haskell-mode-hook (lambda () (define-key haskell-mode-map (kbd "C-(") - (lambda () (interactive) - (basic-save-buffer) - (haskell-compile) - (run-with-timer .3 nil 'repeat-shell))))) + (lambda () (interactive) + (basic-save-buffer) + (haskell-compile) + (run-with-timer .3 nil 'repeat-shell))))) (add-hook 'haskell-cabal-mode-hook (lambda () (define-key haskell-cabal-mode-map (kbd "C-(") 'haskell-compile))) @@ -1353,7 +1335,8 @@ https://fsf.org | https://gnu.org ;;(require 'csv-mode) ;;(add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode)) - (add-hook 'outline-minor-mode-hook 'outshine-mode) + ;; disabled temporarily + ;;(add-hook 'outline-minor-mode-hook 'outshine-mode) (setq org-caldav-url "https://cal.iankelling.org" org-caldav-calendar-id "ian" @@ -1568,8 +1551,15 @@ https://fsf.org | https://gnu.org (setq tramp-default-method "ssh") ;;; misc general settings + ;; from tramp manual, use the same ssh controlmaster. I was having problems with + ;; tramp prompting me for a username and pass. + (customize-set-variable 'tramp-use-ssh-controlmaster-options nil) + (setq auto-revert-interval 2 + ;; fix eof end of file newline + mode-require-final-newline t + require-final-newline t auto-revert-verbose nil auto-revert-remote-files t) @@ -1592,8 +1582,6 @@ https://fsf.org | https://gnu.org ;; give us a shell to start instead of scratch ;;(setq initial-buffer-choice (lambda () (new-shell))) - ;; disable this nasty function, as I always use a gui - (defun suspend-frame() (interactive)) ;; Seed the random-number generator (random t) @@ -1601,6 +1589,14 @@ https://fsf.org | https://gnu.org ;; easier to remember than keybinds (defalias 'scrypt 'mml-secure-message-encrypt-pgpmime) (defalias 'sign 'mml-secure-message-sign-pgpmime) + ;; otherwise we get error on sending: + ;; mml-secure-epg-sign: Couldn’t find any signer names; try setting `mml-secure-smime-sign-with-sender'. + ;; i dunno why sign+encrypt doesnt cause this, seems kinda dumb, + ;; + (setq mml-secure-openpgp-sign-with-sender t) + ;; i dun use smime, the smime signing fails complaining it doesnt have + ;; my key. todo: learn about smime + (setq mml-secure-smime-sign-with-sender t) (defun encrypt () (interactive) (mml-secure-message-encrypt-pgpmime 'dontsign)) @@ -1850,6 +1846,7 @@ Go to the next directory based on where the cursor is." (dot-mode . "") (yas-global-mode . "") (yas-minor-mode . "") + (undo-tree-mode . "") (volatile-highlights-mode . "") (highlight-symbol-mode . "") ;; Major modes @@ -1972,6 +1969,8 @@ Go to the next directory based on where the cursor is." org-extend-today-until 0 org-startup-truncated nil org-clock-persist t + org-use-sub-superscripts "{}" + org-export-with-sub-superscripts nil org-clock-mode-line-total 'today ;; global STYLE property values for completion org-global-properties (quote (("STYLE_ALL" . "habit"))) @@ -2151,6 +2150,12 @@ indent yanked text (with prefix arg don't indent)." ;;; shell mode + + + ;; # eval: (outline-minor-mode) + ;; # outline-regexp: "\\( *\\)# [*]\\{1,8\\} " + + ;; avoid stupid git crap like "warning, terminal not fully functional" (setenv "PAGER" "cat") ;; don't store successive duplicates in comint command history @@ -2308,9 +2313,16 @@ indent yanked text (with prefix arg don't indent)." (defun chirp() (interactive) (setq vol 50) - (when (string= (system-name) "tp") (setq vol 40)) - (start-process-shell-command "ignoreme" nil (format "mpv --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol))) + (when (string= (system-name) "kd") (setq vol 80)) + ;; speed is there so i can adjust and make it go slow so it plays long enough to adjust in pavucontrol + (start-process-shell-command "ignoreme" nil (format "mpv --speed=1 --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol))) ;; from https://www.emacswiki.org/emacs/ErcSound + (defun chirp-slow() + (interactive) + (setq vol 50) + (when (string= (system-name) "tp") (setq vol 80)) + ;; speed is there so i can adjust and make it go slow so it plays long enough to adjust in pavucontrol + (start-process-shell-command "ignoreme" nil (format "mpv --speed=.2 --no-terminal --vo=null --volume=%d /a/bin/data/bird.mp3" vol))) (defun erc-my-privmsg-sound (proc parsed) (let* ((tgt (car (erc-response.command-args parsed))) @@ -2334,7 +2346,11 @@ indent yanked text (with prefix arg don't indent)." ;; consider invisible frames to be unseen. seems like an obvious default erc-track-visibility 'visible ;; switch to buffer where i've been mentioned, etc instead of oldest - erc-track-switch-direction 'importance) + erc-track-switch-direction 'importance + ;; defaults minus fill. todo: modify the list instead of specifying it explicitly in case the defaults change + erc-modules + '(autojoin button completion irccontrols list match menu move-to-prompt netsplit networks noncommands readonly ring stamp track) + ) ;;; named commands @@ -2360,8 +2376,11 @@ indent yanked text (with prefix arg don't indent)." (dolist (r `( (?i (file . ,"~/.emacs.d/init.el")) - (?w (file . ,"/a/work.org")) + (?o (file . ,"/a/work.org")) (?t (file . ,"/a/t.org")) + (?s (file . ,"/usr/share/doc/exim4-base/spec.txt.gz")) + (?w (file . ,"/p/w.org")) + (?k (file . ,"/a/bin/ds/Arduino/Model01-Firmware/Model01-Firmware.ino")) (?x (file . ,"/a/x.txt")) )) (set-register (car r) (cadr r))) @@ -2370,6 +2389,25 @@ indent yanked text (with prefix arg don't indent)." undo-limit 500000000 ; undo history limit undo-strong-limit 600000000) ; undo history limit plus some extra + +;;; undo tree mode + + ;; note, this has weird errors when it was before recentf-mode + + ;; more resilient undo-tree-history if we have its location set up front. + (setq undo-tree-history-directory-alist '(("." . "~/.undo-tree-history"))) + + + ;; todo, send patch undo-tree-visualize should scroll with the scroll key, instead of just pgup pgdn (aka next/prior) + (global-undo-tree-mode) + ;; disabled due to bug, something like unknown entry in undo tree canary + ;; (setq undo-tree-auto-save-history t) + (setq undo-outer-limit 100000000 ; per undo command + undo-limit 500000000 ; undo history limit + undo-strong-limit 600000000) ; undo history limit plus some extra + ;; Undo in region just happens accidentally, and throws me off + (setq undo-tree-enable-undo-in-region nil) + ;;; keybinds ;;;; misc @@ -2411,7 +2449,7 @@ indent yanked text (with prefix arg don't indent)." ;;;; single/special keys ;;;;; tab - isearch - (define-key isearch-mode-map (kbd "") 'isearch-query-replace) + (define-key isearch-mode-map (kbd "TAB") 'isearch-query-replace) ;;;;; f12 - isearch-forward ;; explained in http://stackoverflow.com/questions/7411920/how-to-bind-search-and-search-repeat-to-c-f-in-emacs @@ -2465,7 +2503,10 @@ indent yanked text (with prefix arg don't indent)." (global-set-key (kbd "") 'back-to-indentation-or-beginning) ;;;;; s-tab - indent-buffer + ;; graphical (global-set-key (kbd "") 'indent-buffer) + ;; terminal + (global-set-key (kbd "") 'indent-buffer) ;;;;; s-delete - send-shell (global-set-key (kbd "") 'send-shell) @@ -2649,11 +2690,12 @@ modes like org-mode which have their own yank function." ;; stop splitting windows verticallly when I open a buffer or shell (setq split-height-threshold nil) -;;;;; s-left arrow - shell - (global-set-key (kbd "") 'shell-wrap) - (add-hook 'org-mode-hook - (lambda () - (define-key org-mode-map (kbd "") nil))) +;;;;; s-left arrow - --- + ;; cant be used in terminal + ;; When I had a binding, i did this so org-mode wouldnt clobber it + ;; (add-hook 'org-mode-hook + ;; (lambda () + ;; (define-key org-mode-map (kbd "") nil))) ;;;;; s-right arrow - keyboard-yank-primary (defun keyboard-yank-primary () @@ -2699,7 +2741,7 @@ modes like org-mode which have their own yank function." ;; kp-enter is shift return in terminal (global-set-key (kbd "") 'flyspell-auto-correct-previous-word) -;;;;; s-down arrow - my-contract-region +;;;;; s-up arrow - my-contract-region (global-set-key (kbd "") 'my-contract-region) ;;;;; c-up/down move 8 lines @@ -2758,16 +2800,6 @@ modes like org-mode which have their own yank function." ;;;; left primary -;;;;; C-2 copy-symbol - - (global-unset-key (kbd "C-2")) - (defun copy-symbol (&optional arg) - "Copy symbol at point into kill-ring" - (interactive "P") - (kill-new (thing-at-point 'symbol))) - - (global-set-key (kbd "C-2") 'copy-symbol) - ;;;;; M-2 shell-cd-to-file @@ -2781,13 +2813,18 @@ modes like org-mode which have their own yank function." (message "%s" "shell-cd-to-file: buffer has no file name")))) (global-set-key (kbd "M-2") 'shell-cd-to-file) -;;;;; C-M-2 --- - ; todo. whats going on here? +;;;;; C-M-2 copy-symbol (global-unset-key (kbd "C-M-2")) + (defun copy-symbol (&optional arg) + "Copy symbol at point into kill-ring" + (interactive "P") + (kill-new (thing-at-point 'symbol))) -;;;;; C-3 dot-mode-execute + (global-set-key (kbd "C-M-2") 'copy-symbol) - (global-set-key (kbd "C-3") 'dot-mode-execute) +;;;;; M-3 dot-mode-execute + + (global-set-key (kbd "M-3") 'dot-mode-execute) ;;;;; C-M-3 recenter-top-bottom @@ -2810,13 +2847,13 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-q") 'quoted-insert) -;;;;; C-w +;;;;; C-w counsel-find-file (global-set-key (kbd "C-w") 'counsel-find-file) -;;;;; M-w org-clock-in +;;;;; M-w shell - (global-set-key (kbd "M-w") 'org-clock-in) + (global-set-key (kbd "M-w") 'shell-wrap) ;;;;; C-e copy-line @@ -2918,6 +2955,11 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-s") 'split-window-vertically) ;;;;; C-d - C-c prefix + +;;;;; M-d - run + + (global-set-key (kbd "M-d") 'run) + ;;;;; C-M-d - swap buffer across windows ;; from http://www.emacswiki.org/emacs/TransposeWindows @@ -2947,7 +2989,7 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-d") 'swap-buffers-in-windows) -;;;;; C-f] - kill-whole-line +;;;;; C-f - kill-whole-line (global-set-key (kbd "C-f") 'kill-whole-line-wrapper) (defun kill-whole-line-wrapper (&optional arg) @@ -2976,10 +3018,7 @@ modes like org-mode which have their own yank function." (define-key org-mode-map (kbd "C-M-f") 'org-kill-line))) (global-set-key (kbd "C-M-f") 'kill-line) -;;;;; C-g - cancel / other window - - (global-set-key (kbd "C-g") 'other-window) - +;;;;; C-g - keyboard-quit ;;;;; M-g - abort-recursive-edit (global-set-key (kbd "M-g") 'abort-recursive-edit) @@ -2989,8 +3028,12 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-g") 'mu4e) ;;;;; C-z - undo-only - - (global-set-key (kbd "C-z") 'undo-only) + (global-set-key (kbd "C-z") 'undo-tree-undo) +;;;;; C-M-z - suspend-frame + (global-set-key (kbd "C-z") 'suspend-frame) + ;; previously, i meant to only use gui and ran this to + ;; be sure it never got ran + ;;(defun suspend-frame() (interactive)) ;;;;; C-x - kill-region @@ -3035,9 +3078,10 @@ modes like org-mode which have their own yank function." (define-key c-mode-base-map (kbd "") 'c-electric-delete-forward))) -;;;;; M-c - org-capture +;;;;; M-c - delete-other-windows - (define-key global-map "\M-c" 'org-capture) + ;; todo, consider binding/using org-capture + (define-key global-map "\M-c" 'delete-other-windows) ;;;;; C-M-c - copy-to-register @@ -3074,9 +3118,9 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-v") 'yank-pop) -;;;;; C-b - delete-other-windows +;;;;; C-b - other-window - (global-set-key (kbd "C-b") 'delete-other-windows) + (global-set-key (kbd "C-b") 'other-window) ;;;;; M-b - isearch-backward-current-symbol @@ -3155,17 +3199,9 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "") 'backward-kill-sexp) ;;;; right primary -;;;;; C-* - split-window-horizontally - - (global-set-key (kbd "C-*") 'split-window-horizontally) - -;;;;; C-M-* - calc-dispatch - - (global-set-key (kbd "C-M-*") 'calc-dispatch) +;;;;; M-8 - delete-window-or-exit -;;;;; C-9 - delete-window-or-exit - - (global-set-key (kbd "C-9") 'delete-window-or-exit) + (global-set-key (kbd "M-8") 'delete-window-or-exit) (defun delete-window-or-exit () "Delete window or exit emacs." @@ -3175,6 +3211,12 @@ modes like org-mode which have their own yank function." (progn (basic-save-buffer) (delete-frame)) (save-buffers-kill-terminal t)))) +;;;;; C-* - split-window-horizontally + (global-set-key (kbd "C-*") 'split-window-horizontally) +;;;;; C-M-* - calc-dispatch + + (global-set-key (kbd "C-M-*") 'calc-dispatch) + ;;;;; M-9 - kill-buffer (defun kill-buffer-no-ido () @@ -3213,7 +3255,15 @@ modes like org-mode which have their own yank function." )) ;;;;; C-i - - (define-key input-decode-map [?\C-i] [C-i]) + ;; todo: try making use + ;; this is the key in terminal + ;;M-[ 4 d is undefined + + ;; previously had this for enhancing graphical keybinds, + ;; but afaik its no help since i want terminal to work + ;; the same. + ;; (define-key input-decode-map [?\C-i] [C-i]) + ;;;;; C-M-i - query-replace-regexp (global-set-key (kbd "C-M-i") 'query-replace-regexp) @@ -3304,15 +3354,17 @@ modes like org-mode which have their own yank function." (move-beginning-of-line 2)) (global-set-key (kbd "C-M-;") 'comment-current-line-dwim) -;;;;; C-m -(define-key input-decode-map [?\C-m] [C-m]) +;;;;; C-m - --- + ;; terminal/console needs this. otherwise, we could do this + ;; to make C-m be a valid key in graphical mode. + ;; (define-key input-decode-map [?\C-m] [C-m]) ;;;;; C-M-m - recursive grep (define-key global-map (kbd "C-M-m") 'rgrep) ;;;;; C-, - --- -;; not recognized by terminal, can't get konsole keydef file to recognize comma, -;; todo: dig into konsole sources, or try newer version than t8 + ;; not recognized by terminal, can't get konsole keydef file to recognize comma, + ;; todo: dig into konsole sources, or try newer version than t8 (add-hook 'flyspell-mode-hook (lambda () (define-key flyspell-mode-map (kbd "C-,") nil))) @@ -3322,32 +3374,12 @@ modes like org-mode which have their own yank function." (global-set-key (kbd "C-M-,") 'find-file-in-project) ;;;;; C-. - find recent file - ;; Taken from starter kit. - - (defun recentf-ido-find-file () - "Find a recent file using Ido." - (interactive) - (let* ((file-assoc-list - (mapcar (lambda (x) - (cons (file-name-nondirectory x) - x)) - recentf-list)) - (filename-list - (remove-duplicates (mapcar #'car file-assoc-list) - :test #'string=)) - (filename (ido-completing-read "Choose recent file: " - filename-list - nil - t))) - (when filename - (find-file (cdr (assoc filename - file-assoc-list)))))) (add-hook 'flyspell-mode-hook (lambda () (define-key flyspell-mode-map (kbd "C-.") nil))) (define-key dot-mode-map (kbd "C-.") nil) - (define-key terminal-key-map (kbd "4c") 'recentf-ido-find-file) - (global-set-key (kbd "C-.") 'recentf-ido-find-file) + (define-key terminal-key-map (kbd "4c") 'counsel-recentf) + (global-set-key (kbd "C-.") 'counsel-recentf) (add-hook 'php-mode-hook (lambda () (define-key php-mode-map (kbd "C-.") nil))) @@ -3362,6 +3394,7 @@ modes like org-mode which have their own yank function." (interactive) (join-line '(4))) (global-set-key (kbd "C-/") 'vim-style-join-line) + (define-key undo-tree-map (kbd "C-/") nil) ;;;;; C-M-/ - copy-buffer-file-name @@ -3399,10 +3432,6 @@ modes like org-mode which have their own yank function." -;;;;; C-8 - calc-embedded-word - - (global-set-key (kbd "C-8") 'calc-embedded-word) - ;;;;; C-up-arrow - org prev headline ;; disabled just because i don't want to accidentally hit it @@ -3448,7 +3477,7 @@ modes like org-mode which have their own yank function." ;;;;; C-S-down-arrow - m-x for major mode -;; todo, update this for ivy + ;; todo, update this for ivy (global-set-key (kbd "") 'smex-major-mode-commands) ;;;;; C-lbracket - ---- @@ -3559,9 +3588,9 @@ modes like org-mode which have their own yank function." ;;;;; C-home - start of buffer ;;;;; C-end - end of buffer ;;;; right secondary -;;;;; C-6 - save-buffers-kill-emacs +;;;;; C-^ - save-buffers-kill-emacs - (global-set-key (kbd "C-6") 'save-buffers-kill-emacs) + (global-set-key (kbd "C-^") 'save-buffers-kill-emacs) ;;;;; C-M-6 - insert-small-copyright @@ -3569,18 +3598,22 @@ modes like org-mode which have their own yank function." (interactive) (beginning-of-line) (let ((beg (point))) - (insert "Copyright (C) 2017 Ian Kelling\nThis program is under GPL v. 3 or later, see ") + (insert "Copyright (C) 2019 Ian Kelling\nThis program is under GPL v. 3 or later, see ") (comment-region beg (point)))) (global-set-key (kbd "C-M-6") 'insert-small-copyright) +;;;;; M-7 - calc-embedded-word + + (global-set-key (kbd "M-7") 'calc-embedded-word) + ;;;;; C-M-7 - insert-full-copyright (defun insert-full-copyright () (interactive) (beginning-of-line) (let ((beg (point))) - (insert "Copyright (C) 2017 Ian Kelling\n") + (insert "Copyright (C) 2019 Ian Kelling\n") (insert "\n") (insert "This program is free software: you can redistribute it and/or modify\n") (insert "it under the terms of the GNU General Public License as published by\n") @@ -3632,7 +3665,7 @@ modes like org-mode which have their own yank function." ;;;;; C-M-- - org-edit-src-exit ;;;;; C-y - undo - (global-set-key (kbd "C-y") 'undo) + (global-set-key (kbd "C-y") 'undo-tree-redo) (add-hook 'org-mode-hook (lambda () (define-key org-mode-map (kbd "C-y") nil))) @@ -3673,7 +3706,9 @@ modes like org-mode which have their own yank function." ;;;;; C-escape - find-tag (global-set-key (kbd "") 'find-tag) - ) ;; end let + +;;; end let from start of file + ) ;; Local Variables: ;; eval: (outline-minor-mode)