From: Jakub Czajka Date: Fri, 23 Dec 2022 16:31:13 +0000 (+0100) Subject: [emacs] Edit multiple files at once. X-Git-Url: https://git.ekhem.eu.org/?a=commitdiff_plain;h=e007c5ec5d11316d6c3a15c104ab0d17e0f53f5f;p=guix.git [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). --- 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)