[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/iedit da47784c8d 038/301: Add iedit mode easy access keys
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/iedit da47784c8d 038/301: Add iedit mode easy access keys |
Date: |
Mon, 10 Jan 2022 22:58:48 -0500 (EST) |
branch: elpa/iedit
commit da47784c8dbdaf84b4d6627d8a7ee73a43e11d13
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>
Add iedit mode easy access keys
M-u M-l M-r M-c M-t
---
iedit.el | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 63 insertions(+), 3 deletions(-)
diff --git a/iedit.el b/iedit.el
index 21b55a1dbf..5eaf2b4651 100644
--- a/iedit.el
+++ b/iedit.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-01-29 00:15:42 Victor Ren>
+;; Time-stamp: <2012-01-29 22:32:06 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Keywords: occurrence region replace simultaneous
;; Version: 0.92
@@ -218,7 +218,7 @@ This is like `describe-bindings', but displays only Iedit
keys."
(with-help-window "*Help*"
(with-current-buffer standard-output
(princ "Iedit Mode Bindings:\n")
- (princ (substitute-command-keys "\\{iedit-mode-map}"))))))
+ (princ (substitute-command-keys "\\{iedit-occurrence-local-map}"))))))
(defun iedit-describe-key ()
"Display documentation of the function invoked by iedit key."
@@ -247,6 +247,17 @@ This is like `describe-bindings', but displays only Iedit
keys."
map)
"Keymap used while iedit mode is enabled.")
+(defvar iedit-occurrence-local-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map iedit-mode-map)
+ (define-key map (kbd "M-u") 'iedit-upcase-occurrences)
+ (define-key map (kbd "M-l") 'iedit-downcase-occurrences)
+ (define-key map (kbd "M-r") 'iedit-replace-occurrences)
+ (define-key map (kbd "M-c") 'iedit-clear-occurrences)
+ (define-key map (kbd "M-d") 'iedit-delete-occurrences)
+ map)
+ "Keymap used within overlays.")
+
(or (assq 'iedit-mode minor-mode-map-alist)
(setq minor-mode-map-alist
(cons (cons 'iedit-mode iedit-mode-map) minor-mode-map-alist)))
@@ -283,7 +294,7 @@ With a universal prefix argument and region active,
interactively
edit region as a string rectangle.
Commands:
-\\{iedit-mode-map}"
+\\{iedit-occurrence-local-map}"
(interactive "*P")
(if iedit-mode
(iedit-done)
@@ -437,6 +448,7 @@ occurrences if the user starts typing."
(let ((occurrence (make-overlay begin end (current-buffer) nil t)))
(overlay-put occurrence iedit-occurrence-overlay-name t)
(overlay-put occurrence 'face iedit-occurrence-face)
+ (overlay-put occurrence 'local-map iedit-occurrence-local-map)
(overlay-put occurrence 'insert-in-front-hooks '(iedit-occurrence-update))
(overlay-put occurrence 'insert-behind-hooks '(iedit-occurrence-update))
(overlay-put occurrence 'modification-hooks '(iedit-occurrence-update))
@@ -615,6 +627,54 @@ the buffer."
(iedit-hide-unmatched-lines)
(remove-overlays (point-min) (point-max) iedit-invisible-overlay-name t)))
+(defun iedit-foreach-occurence-call (function &optional string)
+ "Call function for each occurrence."
+ (let* ((ov (car iedit-occurrences-overlays))
+ (beg (overlay-start ov))
+ (end (overlay-end ov)))
+ (when (/= beg end)
+ (let ((inhibit-modification-hooks t))
+ (dolist (occurrence iedit-occurrences-overlays)
+ (if string
+ (funcall function (overlay-start occurrence) (overlay-end
occurrence) string)
+ (funcall function (overlay-start occurrence) (overlay-end
occurrence))))))))
+
+(defun iedit-upcase-occurrences ()
+ "Covert occurrences to upper case."
+ (interactive)
+ (iedit-foreach-occurence-call 'upcase-region))
+
+(defun iedit-downcase-occurrences()
+ "Covert occurrences to lower case."
+ (interactive)
+ (iedit-foreach-occurence-call 'downcase-region))
+
+(defun iedit-replace-occurrences(string)
+ "Replace occurrences with STRING."
+ (interactive "sString: ")
+ (iedit-foreach-occurence-call
+ (lambda (beg end string)
+ (save-excursion
+ (delete-region beg end)
+ (goto-char beg)
+ (insert string)))
+ string))
+
+(defun iedit-clear-occurrences()
+ "Replace occurrences with blank spaces."
+ (interactive)
+ (iedit-foreach-occurence-call
+ (lambda (beg end)
+ (save-excursion
+ (delete-region beg end)
+ (goto-char beg)
+ (insert-char 32 (- end beg))))))
+
+(defun iedit-delete-occurrences()
+ "Delete occurrences."
+ (interactive)
+ (iedit-foreach-occurence-call 'delete-region))
+
(provide 'iedit)
;;; iedit.el ends here
- [nongnu] elpa/iedit af6d0ef70b 007/301: host on github, (continued)
- [nongnu] elpa/iedit af6d0ef70b 007/301: host on github, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 17e8fca7e6 011/301: Merge from tsdh/master, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 6d96992291 015/301: Remove duplicated comments, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 011e8d354c 016/301: Performance optimization of iedit-occurrence-update, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit c8dac6bee8 020/301: exit iedit mode when change is not inside of occurrence., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 768d89b60c 022/301: Merge remote-tracking branch 'lewang/master', ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 0edc86ff41 024/301: Fix the last occurrence problem when it is a complete symbol., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit dd7d2f95f8 027/301: fix org-mode text-property compatibility (use insert-and-inherit), ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d5d4027a33 030/301: fix `iedit-toggle-unmatched-lines-visible' for rectangles, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 652087d63c 036/301: fix warning: the function `make-sparse-key-map' is not known to be, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit da47784c8d 038/301: Add iedit mode easy access keys,
ELPA Syncer <=
- [nongnu] elpa/iedit c53a885fe5 040/301: Add bufferring modification functionalities, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 9bc57d2a30 041/301: make iedit-skipped-modification-once buffer local, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e99e65fccb 044/301: Fix current point move problem when call iedit-replace-occurrences., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 4e31d50327 052/301: Add a prefix arg handling to iedit-toggle-unmatched-lines-visible, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 87053a3d44 054/301: Remove two buffer local variables for rectangle., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e568677fe4 056/301: Add new functionality: restrict iedit-mode in region, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit a9bda4db66 060/301: Refine hotkeys, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 4fa7342be9 065/301: Copy from iedit.el, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit b579dd0739 063/301: Update with new information, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit a13c4d6b56 067/301: Remove README, ELPA Syncer, 2022/01/10