diff options
-rw-r--r-- | init.el | 76 |
1 files changed, 67 insertions, 9 deletions
diff --git a/init.el b/init.el index 0ffe042..20010d1 100644 --- a/init.el +++ b/init.el | |||
@@ -536,15 +536,20 @@ like a dumbass." | |||
536 | ("web" (or (mode . elpher-mode) | 536 | ("web" (or (mode . elpher-mode) |
537 | (mode . gemini-mode) | 537 | (mode . gemini-mode) |
538 | (mode . eww-mode)))))) | 538 | (mode . eww-mode)))))) |
539 | (:global "C-x C-b" ibuffer) | ||
540 | 539 | ||
541 | (add-hook 'ibuffer-mode | 540 | (global-set-key (kbd "C-x C-b") |
542 | (defun ibuffer@filter-to-default () | 541 | (defun list-buffers-or-ibuffer (arg) |
543 | (ibuffer-switch-to-saved-filter-groups "default"))) | 542 | "`list-buffers', or with a prefix arg, `ibuffer'." |
543 | (interactive "P") | ||
544 | (if arg (ibuffer) (electric-buffer-list nil))))) | ||
544 | 545 | ||
545 | (:also-load ibuf-ext) | 546 | (add-hook 'ibuffer-mode |
546 | (:option ibuffer-show-empty-filter-groups nil | 547 | (defun ibuffer@filter-to-default () |
547 | ibuffer-expert t)) | 548 | (ibuffer-switch-to-saved-filter-groups "default"))) |
549 | |||
550 | (:also-load ibuf-ext) | ||
551 | (:option ibuffer-show-empty-filter-groups nil | ||
552 | ibuffer-expert t)) | ||
548 | 553 | ||
549 | (setup imenu | 554 | (setup imenu |
550 | (:option imenu-auto-rescan t)) | 555 | (:option imenu-auto-rescan t)) |
@@ -938,6 +943,41 @@ like a dumbass." | |||
938 | (:bind "M-e" consult-isearch | 943 | (:bind "M-e" consult-isearch |
939 | "M-s e" consult-isearch | 944 | "M-s e" consult-isearch |
940 | "M-s l" consult-line)) | 945 | "M-s l" consult-line)) |
946 | |||
947 | ;; see https://github.com/oantolin/completing-history | ||
948 | (defmacro consult-history-to-modes (map-hook-alist) | ||
949 | (let (defuns) | ||
950 | (dolist (map-hook map-hook-alist) | ||
951 | (let ((map-name (symbol-name (car map-hook))) | ||
952 | (key-defs `(progn (define-key | ||
953 | ,(car map-hook) | ||
954 | (kbd "M-r") | ||
955 | (function consult-history)) | ||
956 | (define-key ,(car map-hook) | ||
957 | (kbd "M-s") nil)))) | ||
958 | (push (if (cdr map-hook) | ||
959 | `(add-hook ',(cdr map-hook) | ||
960 | (defun | ||
961 | ,(intern (concat map-name | ||
962 | "@consult-history-bind")) | ||
963 | nil | ||
964 | ,(concat | ||
965 | "Bind `consult-history' to M-r in " | ||
966 | map-name ".\n" | ||
967 | "Defined by `consult-history-to-modes'.") | ||
968 | ,key-defs)) | ||
969 | key-defs) | ||
970 | defuns))) | ||
971 | `(progn ,@ (nreverse defuns)))) | ||
972 | |||
973 | (consult-history-to-modes ((minibuffer-local-map . nil) | ||
974 | (shell-mode-map . shell-mode-hook) | ||
975 | (term-mode-map . term-mode-hook) | ||
976 | (term-raw-map . term-mode-hook) | ||
977 | (comint-mode-map . comint-mode-hook) | ||
978 | (sly-mrepl-mode-map . sly-mrepl-hook))) | ||
979 | |||
980 | |||
941 | 981 | ||
942 | ;; Registers | 982 | ;; Registers |
943 | (autoload 'consult-register-preview "consult") | 983 | (autoload 'consult-register-preview "consult") |
@@ -1131,6 +1171,10 @@ successive invocations." | |||
1131 | (setup (:straight form-feed) | 1171 | (setup (:straight form-feed) |
1132 | (global-form-feed-mode +1)) | 1172 | (global-form-feed-mode +1)) |
1133 | 1173 | ||
1174 | (setup (:straight gcmh) | ||
1175 | (:option gcmh-idle-delay 'auto) | ||
1176 | (gcmh-mode +1)) | ||
1177 | |||
1134 | (setup (:straight geiser)) | 1178 | (setup (:straight geiser)) |
1135 | 1179 | ||
1136 | (setup (:straight (gemini-mode | 1180 | (setup (:straight (gemini-mode |
@@ -1161,7 +1205,12 @@ successive invocations." | |||
1161 | "<help> k" helpful-key | 1205 | "<help> k" helpful-key |
1162 | "<help> o" helpful-symbol | 1206 | "<help> o" helpful-symbol |
1163 | "C-c C-d" helpful-at-point) | 1207 | "C-c C-d" helpful-at-point) |
1164 | (:bind "q" kill-buffer-and-window)) | 1208 | (define-key helpful-mode-map "q" |
1209 | (defun helpful-mode|quit () | ||
1210 | (interactive) | ||
1211 | (bury-buffer) | ||
1212 | (unless (window-parameter (frame-selected-window) 'no-other-window) | ||
1213 | (delete-window))))) | ||
1165 | 1214 | ||
1166 | (setup (:straight iscroll) | 1215 | (setup (:straight iscroll) |
1167 | (:hook-into text-mode)) | 1216 | (:hook-into text-mode)) |
@@ -1500,7 +1549,16 @@ successive invocations." | |||
1500 | (:option resize-mini-windows 'grow-only | 1549 | (:option resize-mini-windows 'grow-only |
1501 | vertico-count-format nil | 1550 | vertico-count-format nil |
1502 | vertico-cycle t) | 1551 | vertico-cycle t) |
1503 | 1552 | ||
1553 | (defun up-directory (arg) | ||
1554 | "Move up a directory (delete backwards to /)." | ||
1555 | (interactive "p") | ||
1556 | (if (string-match-p "/." (minibuffer-contents)) | ||
1557 | (zap-up-to-char (- arg) ?/) | ||
1558 | (backward-kill-word arg))) | ||
1559 | |||
1560 | (define-key vertico-map (kbd "<C-backspace>") #'up-directory) | ||
1561 | |||
1504 | (if (boundp 'comp-deferred-compilation-deny-list) | 1562 | (if (boundp 'comp-deferred-compilation-deny-list) |
1505 | (add-to-list 'comp-deferred-compilation-deny-list "vertico")) | 1563 | (add-to-list 'comp-deferred-compilation-deny-list "vertico")) |
1506 | 1564 | ||