summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authorThomas Ulmer <thomasmulmer02@gmail.com>2025-12-19 16:19:05 -0800
committerThomas Ulmer <thomasmulmer02@gmail.com>2025-12-19 16:19:05 -0800
commitda2f34267bb40e97d3851c39afd00988b72ad9ee (patch)
tree1e8199f3c115ed03f73c8e796d17d8db46c49074 /emacs
parent6c0cbc2f2fadb622dbd9c8ee8f45d598449b3336 (diff)
emacs: vc/dired and kill buffer bindings
Diffstat (limited to 'emacs')
-rw-r--r--emacs/init.el26
1 files changed, 19 insertions, 7 deletions
diff --git a/emacs/init.el b/emacs/init.el
index 2f24643..f0b77c9 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -192,6 +192,15 @@ back to the previous selected buffer."
(switch-to-prev-buffer)
(eshell arg)))
+(defun my/vc-on-root (&optional arg)
+ "Open a vc dir buffer at the project root.
+With ARG, open a Dired buffer instead."
+ (interactive "P")
+ (let ((dir (project-root(project-current t))))
+ (if arg
+ (dired dir)
+ (vc-dir dir))))
+
(defvar my/layout-pair (cons nil nil) "Cons pair of window configurations.")
(add-hook 'after-init-hook
(lambda ()
@@ -641,7 +650,8 @@ current layout."
("M-M" . 'recompile)
:config
;; Allow compilation buffer to be dedicated across frames
- (push '("\\*compilation\\*" . (nil (reusable-frames . t))) display-buffer-alist))
+ (push '("\\*compilation\\*" . (nil (reusable-frames . t))) display-buffer-alist)
+ (add-hook 'compilation-filter-hook #'ansi-color-compilation-filter))
(use-package sdcv ; dictionary, requires sdcv install
:demand t
@@ -763,25 +773,27 @@ current layout."
(setq delete-pair-blink-delay 0)
- (keymap-set my/keys-mode-map "M-S" 'surround-prefix)
(keymap-set my/keys-mode-map "C-x C-C" 'save-buffers-kill-terminal)
(keymap-set my/keys-mode-map "C-x C-c" 'my/close-or-kill)
- (keymap-set my/keys-mode-map "M-w" 'copy-region-as-kill) ; make copying not flash cursor
(keymap-set my/keys-mode-map "C-x -" 'my/swap-other-window-buffer)
- (keymap-set my/keys-mode-map "M-R" 'my/layout-swap)
+ (keymap-set my/keys-mode-map "C-x w o" 'my/toggle-window-other-reachability)
+ (keymap-set my/keys-mode-map "M-w" 'copy-region-as-kill) ; make copying not flash cursor
(keymap-set my/keys-mode-map "M-(" 'my/wrap-region-paren)
(keymap-set my/keys-mode-map "M-z" 'my/zap-whitespace)
(keymap-set my/keys-mode-map "C-M-z" 'my/wrap-sexp)
(keymap-set my/keys-mode-map "M-o" 'other-window)
- (keymap-set my/keys-mode-map "M-c" 'calc)
(keymap-set my/keys-mode-map "M-RET" 'my/eshell)
+ (keymap-set my/keys-mode-map "M-C" 'calc)
+ (keymap-set my/keys-mode-map "M-K" 'kill-buffer)
+ (keymap-set my/keys-mode-map "M-D" 'my/vc-on-root)
(keymap-set my/keys-mode-map "M-U" 'scroll-lock-mode)
(keymap-set my/keys-mode-map "M-Q" 'auto-fill-mode)
(keymap-set my/keys-mode-map "M-A" 'beginning-of-line-text)
+ (keymap-set my/keys-mode-map "M-R" 'my/layout-swap)
(keymap-set my/keys-mode-map "C-c R" 'raise-sexp)
(keymap-set my/keys-mode-map "C-c r" 'delete-pair)
+ (keymap-set my/keys-mode-map "M-S" 'surround-prefix)
(keymap-set my/keys-mode-map "M-\"" 'my/activate-mark)
- (keymap-set my/keys-mode-map "C-x w o" 'my/toggle-window-other-reachability)
(my/keys-mode 1))
@@ -995,7 +1007,7 @@ current layout."
'(avy balanced-windows bash-completion benchmark-init cape
corfu-terminal eat ednc eglot eglot-tempel embark-consult
esh-help exwm-modeline fold-this free-keys haskell-mode
- hl-todo ibuffer-vc magit marginalia merlin minions ocp-indent
+ hl-todo ibuffer-vc marginalia merlin minions ocp-indent
opam-switch-mode orderless pass pinentry posframe pyvenv
racket-mode rustic sdcv shelldon sideline-flycheck
sideline-flymake tempel-collection tuareg vertico