From e007c5ec5d11316d6c3a15c104ab0d17e0f53f5f Mon Sep 17 00:00:00 2001 From: Jakub Czajka Date: Fri, 23 Dec 2022 17:31:13 +0100 Subject: [PATCH] [emacs] Edit multiple files at once. Emacs can present views which aggregate multiple files. Editing these views applies changes to the actual files (batch editing). --- conf/home/emacs.scm | 11 +++++++- emacs/.config/emacs/conf/conf-batch-edit.el | 30 +++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 emacs/.config/emacs/conf/conf-batch-edit.el diff --git a/conf/home/emacs.scm b/conf/home/emacs.scm index 6caf84e..4458f58 100644 --- a/conf/home/emacs.scm +++ b/conf/home/emacs.scm @@ -13,6 +13,14 @@ #:use-module (guix gexp) #:export (emacs-services)) +(define emacs-batch-edit-service + (service home-program-service-type + (home-program-configuration + (packages + (list emacs-wgrep)) + (dotfiles + (list "emacs/.config/emacs/conf/conf-batch-edit.el"))))) + (define emacs-daemon-shepherd-service (shepherd-service (provision '(emacs)) @@ -50,6 +58,7 @@ "emacs/.local/bin/emacs_client"))))) (define emacs-services - (list emacs-daemon-service + (list emacs-batch-edit-service + emacs-daemon-service emacs-package-service emacs-service)) diff --git a/emacs/.config/emacs/conf/conf-batch-edit.el b/emacs/.config/emacs/conf/conf-batch-edit.el new file mode 100644 index 0000000..7c756fc --- /dev/null +++ b/emacs/.config/emacs/conf/conf-batch-edit.el @@ -0,0 +1,30 @@ +;; Copyright (c) 2022 Jakub Czajka +;; License: GPL-3.0 or later. +;; +;; conf-batch-edit.el - edit multiple files at once. + +(require 'conf-package) + +(use-package wdired + :custom + (wdired-allow-to-change-permissions t) + (wdired-allow-to-redirect-links t) + ;; Example: Renaming `b' to `a/b' will move `b' to directory `a'. + (wdired-create-parent-directories t)) + +(use-package wgrep + :ensure t + :bind + (:map grep-mode-map + ("C-c C-q" . wgrep-change-to-wgrep-mode) + :map wgrep-mode-map + ("C-c C-c" . wgrep-finish-edit)) + :custom + (wgrep-auto-save-buffer t)) + +(use-package occur + :bind + (:map occur-mode-map + ("C-c C-q" . occur-edit-mode))) + +(provide 'conf-batch-edit) -- 2.39.5