;; speed up init https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/
+;;
+;; Todo: look over this for good ideas:
;; https://github.com/jwiegley/dot-emacs/blob/master/init.el
-(defvar file-name-handler-alist-old file-name-handler-alist)
-(setq package-enable-at-startup nil
- file-name-handler-alist nil
+
+(setq
+ file-name-handler-alist nil
message-log-max 16384
- gc-cons-threshold 402653184
+ gc-cons-threshold 100000000 ;; 100 mb
+ ;; package-enable-at-startup nil
gc-cons-percentage 0.6
auto-window-vscroll nil)
(add-hook 'after-init-hook
- `(lambda ()
- (setq file-name-handler-alist file-name-handler-alist-old
- ;; 100 mb
- gc-cons-threshold 100000000))
- ;; taken from wiegley, dunno why the t is there.
- t)
+ #'(lambda ()
+ (setq file-name-handler-alist file-name-handler-alist-old)))
+(defvar file-name-handler-alist-old file-name-handler-alist)
;; 2019-6-26, 1.26s
;; ; to profile init:
;;; shell mode stuff
+(require 'mmm-mode)
+(setq mmm-global-mode 'maybe)
+
(require 'readline-complete)
;; not sure how I made these, but I deleted, and
;; it would be nice to make them again sometime
;; mu4e-user-mail-address-list
;; and a function
;; inspired by mu4e info manual, search for mu4e-compose-pre-hook.
-(when (file-exists-p "/p/c/mymu4e.el")
- (load-file "/p/c/mymu4e.el"))
-(when (file-exists-p "/p/c/myidir.el")
- (load-file "/p/c/myidir.el"))
+(load-file "/p/c/plisp/mymu4e.el")
+
+(add-to-list 'load-path "/p/c/plisp")
+(use-package myidir
+ :commands (myidir rthumb-new myidir-use-batch-input))
(when (file-exists-p "/a/h/iank-mod.el")
(temp-buffer-resize-mode 1)
+(defun perl-mode-defaults ()
+ ;; per perl-mode help, gnu style:
+ (setq perl-indent-level 2
+ perl-continued-statement-offset 2
+ perl-continued-brace-offset 0
+ perl-brace-offset 0
+ perl-brace-imaginary-offset 0
+ perl-label-offset -2
+ )
+ (define-key perl-mode-map (kbd "C-\\") 'perl-iank-regex)
+
+ )
+(add-hook 'perl-mode-hook 'perl-mode-defaults)
+
+
+;; in perl, sometimes a missing semicolon will cause the
+;; program to work partly and for an error that is not near the missing semicolon.
+;; This works super well to find missing semicolons.
+(defun perl-iank-regex ()
+ "Start regexp isearch forward with pre-populated search string."
+ (interactive)
+ (let ((search-string "^[^#]*[^
+{};,]$"))
+ (isearch-mode t t nil nil)
+ (setq isearch-string search-string
+ isearch-message search-string)
+ (isearch-push-state)
+ (isearch-search-and-update)))
+
+;; regex for perl files to find missing semicolons:
;;; misc general settings
org-log-into-drawer t
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")))
org-special-ctrl-a/e t ;; home and end work special in headlines
org-completion-use-ido t
;; i had some problem with this in the past, but don't know what, so whatever.
org-cycle-emulate-tab nil
- org-catch-invisible-edits 'smart)
+ org-catch-invisible-edits 'smart
-(setq
- org-default-notes-file "/a/t.org"
- org-directory "/p")
+
+ ;; 2025: I don't use it and its giving me lexical scope bindings all the time
+ ;;org-clock-persist t
+ ;;org-clock-mode-line-total 'today
+
+ )
;; modeilne populated from (org-clock-get-clocked-time)
;; which is populated from the var org-clock-total-time
;; which is populated by a function which starts from (org-clock-get-sum-start)
-;;
+;; 2025: I don't use it and its giving me lexical scope bindings all the time
+;; (eval-after-load "org"
+;; '(org-clock-persistence-insinuate))
+
+
+
+(setq
+ org-default-notes-file "/a/t.org"
+ org-directory "/p")
-(eval-after-load "org"
- '(org-clock-persistence-insinuate))
(defun time-to-org-day (time)
(round (time-to-number-of-days
;; (idle-highlight-mode)
;; (setq idle-highlight-idle-time 0.1)
+ ;; note: I used to set c-default-style other to "stroustrup" to avoid brace indent after if, but don't care enough anymore, just go with gnu.
+ ;;
+ ;; (setq-default c-basic-offset 2)
+ '(c-default-style '((java-mode . "java")
+ (awk-mode . "awk")
+ (other . "stroustrup")))
(make-local-variable 'column-number-mode)
(setq
;; example. decided i actually wanted it there.
-;; global-visible-mark-mode-exclude-list (list "\\*image-dired\\*")
+ ;; global-visible-mark-mode-exclude-list (list "\\*image-dired\\*")
visible-mark-faces '(visible-mark-face1 visible-mark-face2)
visible-mark-forward-faces '(visible-mark-forward-face1)
;; highlight the last 2 marks
(cond (erc-modified-channels-alist
;; if we're not in erc-mode, set this buffer to return to
(if-let* ((buf (erc-track-get-active-buffer arg))
- ((buffer-live-p buf)))
+ ((buffer-live-p buf)))
(funcall fun buf)
(erc-modified-channels-update)
(erc-track--switch-buffer fun arg)))
(global-set-key (kbd "C-e") 'copy-line)
;;;;; M-e ?? unused
+(global-set-key (kbd "M-e") 'goto-line)
;;;;; C-r isearch-backward
(global-set-key (kbd "C-M-SPC") 'ispell-word)
;;;; left secondary
+;;;;; M-1 toggle-night
+(global-set-key (kbd "M-1") 'toggle-night)
+
;;;;; C-M-4 - widen
(global-set-key (kbd "C-M-4") 'widen)