Add a function to easily swap strings in a file
This commit is contained in:
parent
dbe501a258
commit
489591702b
@ -49,6 +49,28 @@ DELIMITED, START, and END are passed down verbatim to `perform-replace'."
|
||||
,from-string))
|
||||
t t delimited nil nil start end))
|
||||
|
||||
;; From https://emacs.stackexchange.com/a/27170/507
|
||||
(defun query-swap-strings (from-string to-string &optional delimited start end)
|
||||
"Swap occurrences of FROM-STRING and TO-STRING.
|
||||
|
||||
DELIMITED, START, and END are passed to `replace-eval-replacement' verbatim."
|
||||
(interactive
|
||||
(let ((common
|
||||
(query-replace-read-args
|
||||
(concat "Query swap"
|
||||
(if current-prefix-arg
|
||||
(if (eq current-prefix-arg '-) " backward" " word")
|
||||
"")
|
||||
(if (use-region-p) " in region" ""))
|
||||
nil)))
|
||||
(list (nth 0 common) (nth 1 common) (nth 2 common)
|
||||
(if (use-region-p) (region-beginning))
|
||||
(if (use-region-p) (region-end)))))
|
||||
(perform-replace
|
||||
(concat "\\(" (regexp-quote from-string) "\\)\\|" (regexp-quote to-string))
|
||||
`(replace-eval-replacement replace-quote (if (match-string 1) ,to-string ,from-string))
|
||||
t t delimited nil nil start end))
|
||||
|
||||
(provide 'text-manip)
|
||||
|
||||
;;; text-manip.el ends here
|
||||
|
Loading…
Reference in New Issue
Block a user