From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Alex Branham Newsgroups: gmane.emacs.bugs Subject: bug#32378: [PATCH] bibtex-next/previous-entry Date: Mon, 06 Aug 2018 16:03:30 -0500 Message-ID: <87lg9jcin1.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1533589331 1893 195.159.176.226 (6 Aug 2018 21:02:11 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 6 Aug 2018 21:02:11 +0000 (UTC) User-Agent: mu4e 1.0; emacs 26.1 To: 32378@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 06 23:02:07 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fmmde-0000Kx-Qj for geb-bug-gnu-emacs@m.gmane.org; Mon, 06 Aug 2018 23:02:03 +0200 Original-Received: from localhost ([::1]:36303 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmmfl-00065d-5P for geb-bug-gnu-emacs@m.gmane.org; Mon, 06 Aug 2018 17:04:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35908) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmmfe-00065W-1w for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:04:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmmfa-0001Aj-Pi for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:04:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37932) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fmmfa-0001Ad-KU for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:04:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fmmfa-0002BC-Bw for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:04:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alex Branham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 06 Aug 2018 21:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 32378 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.15335894308353 (code B ref -1); Mon, 06 Aug 2018 21:04:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 6 Aug 2018 21:03:50 +0000 Original-Received: from localhost ([127.0.0.1]:42950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fmmfM-0002Ae-EH for submit@debbugs.gnu.org; Mon, 06 Aug 2018 17:03:50 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:44832) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fmmfK-0002AN-JF for submit@debbugs.gnu.org; Mon, 06 Aug 2018 17:03:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmmfE-00011u-4y for submit@debbugs.gnu.org; Mon, 06 Aug 2018 17:03:41 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:35526) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fmmfE-00011q-0w for submit@debbugs.gnu.org; Mon, 06 Aug 2018 17:03:40 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35798) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmmfC-00063D-H7 for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:03:39 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmmf9-0000z3-Dm for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:03:38 -0400 Original-Received: from mail-oi0-x236.google.com ([2607:f8b0:4003:c06::236]:35464) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fmmf9-0000yK-2K for bug-gnu-emacs@gnu.org; Mon, 06 Aug 2018 17:03:35 -0400 Original-Received: by mail-oi0-x236.google.com with SMTP id m11-v6so24768720oic.2 for ; Mon, 06 Aug 2018 14:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=YNiYSM4SS8SPG9LStmrmwrtDA8vw7juUA6tzsR0zhpE=; b=KCN9ImzUSoNBJ2/WaGpzYiZMjJNQHUfM8BugXPSM6c2DUCGJCfT5FLDD8uq6WTJN0s Dq2gRwx3WVc8k4dPJ2SJi6N7MkACMqbJ6QC/iMbbWGnc/2T+mEEIE/aMV7X2ma/twGpv JSswcQicdFjI29scACU4eQOGgE8HGPzD1QaMJUG+2pGE3A/47uPkWKdlI9eJ3LGiOh83 Mxng60XeotStI6X3yORJEUlzN9Ro5phzLR9FaKiWLupbOYHZ/vZrumwOgbWjLwxcGeXK wpc86+sPiYtKfPNC6XVRxY+a6rktUwk05eyTr4TBYKZrwdywzxzuOG5/SclByfF5ygnO MPCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=YNiYSM4SS8SPG9LStmrmwrtDA8vw7juUA6tzsR0zhpE=; b=iqMueuNQw0+3etpUp68+BIp0Ovkdo2m/y0XvongfFsfbTFW+k/DZQL0eJJx63dj5Xr J14Puv3MP/j+txvgJhHagAXLEKDFIKqsOnaImS1oGzaih/VJRWxoZB57fRRC0WueibWt R6YDgQR2NXIB1okhkCEAXHDw/f1jTblgGhTnIv2HB+eHUed2WflSIc0YIavMv260NdtL rK8NuTJhcY9GtzPckSr/3+hWQL6kfGYZgGOxfMKBo03PCFEvPbNvrERhcnXVoUMW9z2I QpcT9IlX2GW9yC9/+ftTXU6T18dgLpRXD62MypO9rVvho1dFTW6XpJ5td+tZfZ0Ka7M5 kJhw== X-Gm-Message-State: AOUpUlG8KJLZv/TdMNpIB5HTJoheilZw+3NzD1fnNdCdovOgfVfg6gBT 5DCDReZe0YmnM/BElATc19+6u/TPkI4= X-Google-Smtp-Source: AAOMgpdfXZrs6+wXTlh+r/M9PTxRXuApLCM1jYHQbJjrgnrNyXjHiJrx8djPGT7m0VepgxRJ8TBILQ== X-Received: by 2002:aca:c484:: with SMTP id u126-v6mr16893350oif.209.1533589413736; Mon, 06 Aug 2018 14:03:33 -0700 (PDT) Original-Received: from earth (cpe-70-114-192-208.austin.res.rr.com. [70.114.192.208]) by smtp.gmail.com with ESMTPSA id o125-v6sm20392685oig.44.2018.08.06.14.03.32 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 06 Aug 2018 14:03:32 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:149295 Archived-At: --=-=-= Content-Type: text/plain This patch adds two functions in bibtex-modeto navigate forward or backward by entry. I also bind them to M-{ and M-} because the paragraph forward/backward commands in bibtex-mode just go up and down single lines, which you can just use C-n/p to do more easily. Let me know if something looks off. Thanks, Alex --- >From 406d6d438f890adb03a77c1bc15096db68f13fa7 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Mon, 6 Aug 2018 15:47:12 -0500 Subject: [PATCH] * lisp/textmodes/bibtex.el: New functions bibtex-next/previous-entry (bibtex-next-entry, bibtex-previous-entry): new functions. (bibtex-mode-map): Bind to M-{/}, overriding forward/backward paragraph, which only move single lines in bibtex-mode --- etc/NEWS | 5 +++++ lisp/textmodes/bibtex.el | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 21887f5bfd..a3c06a3cb5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -232,6 +232,11 @@ 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 +They are bound to M-{ and M-} in bibtex-mode-map. + +++ ** Dired diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 50a30cf6c3..966e774ae5 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -1356,6 +1356,8 @@ bibtex-mode-map ;; 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 "\M-\}" 'bibtex-next-entry) + (define-key km "\M-\{" '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 @@ bibtex-mode-map ("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,20 @@ bibtex-next-field (goto-char (match-beginning 0))) (bibtex-find-text begin nil bibtex-help-message))) +(defun bibtex-next-entry (&optional arg) + "Move point ARG entries forward." + (interactive "p") + (bibtex-end-of-entry) + (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." + (interactive "p") + (bibtex-beginning-of-entry) + (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.18.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-lisp-textmodes-bibtex.el-New-functions-bibtex-next-p.patch >From 406d6d438f890adb03a77c1bc15096db68f13fa7 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Mon, 6 Aug 2018 15:47:12 -0500 Subject: [PATCH] * lisp/textmodes/bibtex.el: New functions bibtex-next/previous-entry (bibtex-next-entry, bibtex-previous-entry): new functions. (bibtex-mode-map): Bind to M-{/}, overriding forward/backward paragraph, which only move single lines in bibtex-mode --- etc/NEWS | 5 +++++ lisp/textmodes/bibtex.el | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 21887f5bfd..a3c06a3cb5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -232,6 +232,11 @@ 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 +They are bound to M-{ and M-} in bibtex-mode-map. + +++ ** Dired diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 50a30cf6c3..966e774ae5 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -1356,6 +1356,8 @@ bibtex-mode-map ;; 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 "\M-\}" 'bibtex-next-entry) + (define-key km "\M-\{" '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 @@ bibtex-mode-map ("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,20 @@ bibtex-next-field (goto-char (match-beginning 0))) (bibtex-find-text begin nil bibtex-help-message))) +(defun bibtex-next-entry (&optional arg) + "Move point ARG entries forward." + (interactive "p") + (bibtex-end-of-entry) + (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." + (interactive "p") + (bibtex-beginning-of-entry) + (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.18.0 --=-=-=--