Find and replace without regex in obsolete

I am trying to convert a website into an e-book and there is a huge html fragment at the beginning of each page that I want to delete. As you can imagine, using Q does not lead to coincidences due to the fact that something in a large piece does not slip away properly. When I try to re-set the problem, I get a stack overflow.

I really need a way to find and replace in dired without regular expression in the usual way M-%. Is it possible?

+4
source share
1 answer

Regular expression behavior is optional in theory, but the function raises a tough question, which is supposed in several places. I think the easiest solution is to create copies that do not set regular expression flags when they start.

 (eval-after-load 'dired '(define-key dired-mode-map (kbd "Cc Q") 'my-dired-do-query-replace)) (defun my-dired-do-query-replace (from to &optional delimited) "Do `query-replace' of FROM with TO, on all marked files. Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit], RET or q), you can resume the query replace with the command \\[tags-loop-continue]." (interactive (let ((common (query-replace-read-args "Query replace in marked files" nil t))) (list (nth 0 common) (nth 1 common) (nth 2 common)))) (require 'dired-aux) (dolist (file (dired-get-marked-files nil nil 'dired-nondirectory-p)) (let ((buffer (get-file-buffer file))) (if (and buffer (with-current-buffer buffer buffer-read-only)) (error "File `%s' is visited read-only" file)))) (my-tags-query-replace from to delimited '(dired-get-marked-files nil nil 'dired-nondirectory-p))) (defun my-tags-query-replace (from to &optional delimited file-list-form) "Do `query-replace' of FROM with TO on all files listed in tags table. Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit], RET or q), you can resume the query replace with the command \\[tags-loop-continue]. Fourth arg FILE-LIST-FORM non-nil means initialize the replacement loop. Fifth and sixth arguments START and END are accepted, for compatibility with `query-replace', and ignored. If FILE-LIST-FORM is non-nil, it is a form to evaluate to produce the list of files to search. See also the documentation of the variable `tags-file-name'." (interactive (query-replace-read-args "Tags query replace" nil t)) (require 'etags) (setq tags-loop-scan `(let ,(unless (equal from (downcase from)) '((case-fold-search nil))) (if (search-forward ',from nil t) ;; When we find a match, move back ;; to the beginning of it so perform-replace ;; will see it. (goto-char (match-beginning 0)))) tags-loop-operate `(perform-replace ',from ',to t nil ',delimited nil multi-query-replace-map)) (tags-loop-continue (or file-list-form t))) 
+6
source

All Articles