From 717b0341aafb9ae9b93395dba1192b12c4459f0c Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Tue, 21 Aug 2018 10:21:39 -0500 Subject: [PATCH] New commands bibtex-next/previous-entry (Bug#32378) * lisp/textmodes/bibtex.el (bibtex-next-entry) (bibtex-previous-entry): New commands. (bibtex-mode-map): Bind to to forward-paragraph and backward-paragraph. Add to menu under "Moving inside an Entry". --- etc/NEWS | 6 ++++++ lisp/textmodes/bibtex.el | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 4fc02e8f2a4..049863822a4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -255,6 +255,12 @@ navigation and editing of large files. * Changes in Specialized Modes and Packages in Emacs 27.1 +--- +** bibtex +*** New commands 'bibtex-next-entry' and 'bibtex-previous-entry'. +In bibtex-mode-map, forward-paragraph and backward-paragraph are +remapped to these, respectively. + +++ ** Dired diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 6f6b06266ef..57e5ef8017a 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -1356,6 +1356,8 @@ Set this variable before loading BibTeX mode." ;; The Key `C-c&' is reserved for reftex.el (define-key km "\t" 'bibtex-find-text) (define-key km "\n" 'bibtex-next-field) + (define-key km [remap forward-paragraph] 'bibtex-next-entry) + (define-key km [remap backward-paragraph] 'bibtex-previous-entry) (define-key km "\M-\t" 'completion-at-point) (define-key km "\C-c\"" 'bibtex-remove-delimiters) (define-key km "\C-c{" 'bibtex-remove-delimiters) @@ -1415,6 +1417,8 @@ Set this variable before loading BibTeX mode." ("Moving inside an Entry" ["End of Field" bibtex-find-text t] ["Next Field" bibtex-next-field t] + ["Next entry" bibtex-next-entry t] + ["Previous entry" bibtex-previous-entry t] ["Beginning of Entry" bibtex-beginning-of-entry t] ["End of Entry" bibtex-end-of-entry t] "--" @@ -4452,6 +4456,24 @@ is as in `bibtex-enclosing-field'. It is t for interactive calls." (goto-char (match-beginning 0))) (bibtex-find-text begin nil bibtex-help-message))) +(defun bibtex-next-entry (&optional arg) + "Move point ARG entries forward. +ARG defaults to one. Called interactively, ARG is the prefix +argument." + (interactive "p") + (bibtex-end-of-entry) + (when (re-search-forward bibtex-entry-maybe-empty-head nil t (or arg 1)) + (goto-char (match-beginning 0)))) + +(defun bibtex-previous-entry (&optional arg) + "Move point ARG entries backward. +ARG defaults to one. Called interactively, ARG is the prefix +argument." + (interactive "p") + (bibtex-beginning-of-entry) + (when (re-search-backward bibtex-entry-maybe-empty-head nil t (or arg 1)) + (goto-char (match-beginning 0)))) + (defun bibtex-find-text (&optional begin noerror help comma) "Move point to end of text of current BibTeX field or entry head. With optional prefix BEGIN non-nil, move point to its beginning. -- 2.39.2