Emacs с узким регулярным выражением - PullRequest
0 голосов
/ 04 сентября 2018

Есть такие функции, как M-x narrow-to-line и M-x narrow-to-page. Какие подпрограммы могут помочь мне достичь функциональности несуществующего M-x узкого по регулярному выражению?

Спасибо.

1 Ответ

0 голосов
/ 04 сентября 2018

это похоже на работу. предложит пользователю ввести регулярное выражение начала и конца. (не проверено очень тщательно!):

(defun narrow-to-regex ()
  "narrow the buffer visibility to the section between two regexes the user provides"
  (interactive)
  (let* ((beginRegex (read-regexp "begin pattern"))
         (endRegex (read-regexp "end pattern"))
         (beg)
         (end))
    (goto-char (point-min)) ;; go to the start of the buffer
    (if (re-search-forward beginRegex nil t nil)
        (setq beg (- (point) (length beginRegex))))
    (if (re-search-forward endRegex nil t nil)
        (setq end (point)))
    (if (and beg end (> end beg))
        (narrow-to-region beg end)
      (message "did not find both instances of the regex, %s %s, no narrow" beg end))))

вам придется установить его, поместив в буфер (нуля и т. Д.) И нажав CTRL + X, а затем CTRL + E

...