Was Sie beschreiben, fordert nicht, was normalerweise eine Regexp Suche in Emacs genannt wird. Es fordert die Übereinstimmung eines Regexp am Ende des Puffers (eob). Ich habe den Titel und den Text Ihrer Frage entsprechend bearbeitet.
Dafür müssen Sie nur vorübergehend zum Ende des Puffers wechseln und looking-back
verwenden, um nach einem regulären Ausdruck zu suchen.
(defun delete-abc-SPC-<-3-newlines()
"Delete `abc ' followed by up to 2 newlines at eob."
(interactive)
(let ((ends-w-<-3-newlines nil))
(save-excursion
(goto-char (point-max))
(setq ends-w-<-3-newlines (looking-back "abc \n?\n?\n?")))
(when ends-w-<-3-newlines
(delete-region (match-beginning 0) (match-end 0)))))
Wenn Sie den Puffer nicht neu dann diese verwenden geändert berücksichtigt werden:
(defun delete-abc-SPC-<-3-newlines()
"Delete `abc ' followed by up to 2 newlines at eob."
(interactive)
(let ((ends-w-<-3-newlines nil)
(mod-buf (buffer-modified-p)))
(save-excursion
(goto-char (point-max))
(setq ends-w-<-3-newlines (looking-back "abc \n?\n?\n?")))
(when ends-w-<-3-newlines
(delete-region (match-beginning 0) (match-end 0)))
(set-buffer-modified-p mod-buf)))
Kann der Link zu Xah Lees Artikel über '\ '' helfen? http://ergoemacs.org/emacs/emacs_regex_begin_end_line_string.html – lawlist
@lawlist Guten Tipp zu verwenden '\ ''! Ich war mir dessen nicht bewusst. – halloleo