From da2f34267bb40e97d3851c39afd00988b72ad9ee Mon Sep 17 00:00:00 2001 From: Thomas Ulmer Date: Fri, 19 Dec 2025 16:19:05 -0800 Subject: emacs: vc/dired and kill buffer bindings --- emacs/init.el | 26 +++++++++++++++++++------- 1 file 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 -- cgit v1.2.3