From 9e0e42554e0c2619fcb4ce8a8b48da4288c44298 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Tue, 4 May 2021 17:27:36 -0500 Subject: [PATCH] Remap C-w to backward-kill-word if the region isn't active --- init.el | 3 ++- lisp/acdw.el | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index f520e02..ef50dc7 100644 --- a/init.el +++ b/init.el @@ -568,7 +568,8 @@ attempt-orderly-shutdown-on-fatal-signal nil find-function-C-source-directory (acdw/find-emacs-source)) - (:global "M-=" count-words) + (:global "M-=" count-words + "C-w" acdw/kill-region-or-backward-word) ;; Remap C-h to DEL -- can be the "help" key (define-key key-translation-map [?\C-h] [?\C-?]) diff --git a/lisp/acdw.el b/lisp/acdw.el index f297691..a798069 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el @@ -29,6 +29,8 @@ ;;; Utility functions +;; I don't prefix these because ... reasons. Honestly I probably should prefix +;; them. (defun dos2unix (buffer) "Replace \r\n with \n in BUFFER." @@ -58,6 +60,13 @@ each hook in HOOKS." ,@(dolist (hook hook-list hook-defun-add-hook-list) (push `(add-hook ',hook #',func-name) hook-defun-add-hook-list))))) +(defun kill-region-or-backward-word (arg) + "Kill region if active, or backward word if not." + (interactive "p") + (if (region-active-p) + (kill-region (region-beginning) (region-end)) + (backward-kill-word arg))) + (defmacro when-unfocused (name &rest forms) "Define a function NAME, executing FORMS, that fires when Emacs is unfocused."