Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun replace-regexp-entire-buffer (pattern replacement)
- "Perform regular-expression replacement throughout buffer."
- (interactive
- (let ((args (query-replace-read-args "Replace" t)))
- (setcdr (cdr args) nil) ; remove third value returned from query---args
- args))
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward pattern nil t)
- (replace-match replacement))))
- (defun my/query-replace (from-string to-string &optional delimited start end)
- "Replace some occurrences of FROM-STRING with TO-STRING. As each match is
- found, the user must type a character saying what to do with it. This is a
- modified version of the standard `query-replace' function in `replace.el',
- This modified version defaults to operating on the entire buffer instead of
- working only from POINT to the end of the buffer. For more information, see
- the documentation of `query-replace'"
- (interactive
- (let ((common
- (query-replace-read-args
- (concat "Query replace"
- (if current-prefix-arg " word" "")
- (if (and transient-mark-mode mark-active) " in region" ""))
- nil)))
- (list (nth 0 common) (nth 1 common) (nth 2 common)
- (if (and transient-mark-mode mark-active)
- (region-beginning)
- (buffer-end -1))
- (if (and transient-mark-mode mark-active)
- (region-end)
- (buffer-end 1)))))
- (perform-replace from-string to-string t nil delimited nil nil start end))
- ;; Replace the default key mapping
- (define-key esc-map "%" 'my/query-replace)
- (defun my/query-replace-regexp (regexp to-string &optional delimited start end)
- "Replace some things after point matching REGEXP with TO-STRING. As each
- match is found, the user must type a character saying what to do with
- it. This is a modified version of the standard `query-replace-regexp'
- function in `replace.el', This modified version defaults to operating on the
- entire buffer instead of working only from POINT to the end of the
- buffer. For more information, see the documentation of `query-replace-regexp'"
- (interactive
- (let ((common
- (query-replace-read-args
- (concat "Query replace"
- (if current-prefix-arg " word" "")
- " regexp"
- (if (and transient-mark-mode mark-active) " in region" ""))
- t)))
- (list (nth 0 common) (nth 1 common) (nth 2 common)
- (if (and transient-mark-mode mark-active)
- (region-beginning)
- (buffer-end -1))
- (if (and transient-mark-mode mark-active)
- (region-end)
- (buffer-end 1)))))
- (perform-replace regexp to-string t t delimited nil nil start end))
- ;; Replace the default key mapping
- (define-key esc-map [?C-%] 'my/query-replace-regexp)
- (defun query-replace-from-top ()
- (interactive)
- (let ((orig-point (point)))
- (save-excursion
- (goto-char (point-min))
- (call-interactively 'query-replace))
- (message "Back to old point.")
- (goto-char orig-point)))
- (bind-key* "M-%" 'query-replace-from-top)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement