all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Matthew White <mehw.is.me@inventati.org>, emacs-devel@gnu.org
Subject: RE: Add new functions to mark/unmark/delete all bookmarks
Date: Thu, 23 Jul 2020 20:15:25 -0700 (PDT)	[thread overview]
Message-ID: <03f641b5-9ff9-476f-afab-e674e4027d27@default> (raw)
In-Reply-To: <20200724005105.11f85d5f@pineapple>

> Attached here there is a patch to add new functions to mark, unmark,
> and delete all bookmarks at once.
> 
> Menu entries and bindings are updated too, and tests are included.
> 
> You may consider this both a suggestion and a way to get an opinion
> from the community.
> 
> I felt that some functions where missing, I'm used to type "U" in
> dired to unmark all marks...
> 
> Summary (just main functions are described here):
> 
> * bookmark-delete-all: With ARG nil asks for confirmation. Deletes all
>   bookmarks. Bound to "D" in `bookmark-map'.
> * bookmark-bmenu-mark-all: Operates in the *Bookmark List* buffer.
>   Marks all bookmarks. Bound to "M" in `bookmark-bmenu-mode-map'.
> * bookmark-bmenu-unmark-all: Operates in the *Bookmark List* buffer.
>   Unmarks all bookmarks. Bound to "U" in `bookmark-bmenu-mode-map'.
> * bookmark-bmenu-delete-all: Operates in the *Bookmark List* buffer.
>   Marks all bookmarks for deletion. Bound to "D" in `bookmark-bmenu-mode-
> map'.

Well, I naturally am not in favor of seeing this.

All of that is in Bookmark+, but better, IMO.
You could have taken some of what's there, either
as is or as a starting point.

The Bookmark+ behavior borrows heavily from Dired
(and not just for marking).  `U', like `M-DEL',
unmarks all of a given kind of mark, or all marks.

There are commands to mark different kinds of
bookmarks and commands to mark bookmarks that
satisfy various conditions.

`M-m' marks all bookmarks.  (`M' is a prefix key
for marking or showing only `man' bookmarks.  Most
uppercase letters are prefix keys for acting on
particular kinds of bookmarks.  `M' as a suffix
key marks bookmarks of the type indicated by the
prefix key; e.g., `I M' marks Info bookmarks.)

Marking flexibility carries over for deletion.
As in Dired, `D' deletes the marked bookmarks -
it doesn't flag for deletion.  `d' and `C-d' flag
individually.  As in Dired, there's no need for a
command to flag all, IMO.

https://www.emacswiki.org/emacs/BookmarkPlus#MarkingAndUnmarkingBookmarks
___

Some of the commands involving mark (`>') and flag
(`D') that are bound to keys:

d	- Flag bookmark `D' for deletion, then move down
C-d	- Flag bookmark `D' for deletion, then move up
x	- Delete (visible) bookmarks flagged `D'
D	- Delete (visible) bookmarks marked `>'

m	- Mark bookmark
u	- Unmark bookmark  (`C-u': move up one line)
DEL	- Unmark previous bookmark (move up, then unmark)

M-m	- Mark all bookmarks
% m	- Mark all bookmarks whose names match a regexp
U	- Unmark all bookmarks  (`C-u': interactive query)
t	- Toggle marks: unmark the marked and mark the unmarked

A M	- Mark autofile bookmarks
# M	- Mark autonamed bookmarks
X M	- Mark temporary bookmarks
H M	- Mark highlighted bookmarks

B M	- Mark non-file (i.e. buffer) bookmarks
M-d M-m	- Mark Dired bookmarks
F M	- Mark file & directory bookmarks  (`C-u': local only)
G M	- Mark Gnus bookmarks
I M	- Mark Info bookmarks
i M	- Mark Icicles search-hits bookmarks
N M	- Mark non-invokable bookmarks
M-I M-M	- Mark image-file bookmarks
K M	- Mark desktop bookmarks
M M	- Mark `man' page bookmarks (that's `M' twice, not Meta-M)
O M	- Mark orphaned local file/dir bookmarks (`C-u': remote also)
R M	- Mark region bookmarks
Q M	- Mark function bookmarks
M-u M-m	- Mark URL bookmarks
V M	- Mark variable-list bookmarks
W 3 M	- Mark W3M (URL) bookmarks
w M	- Mark snippet bookmarks
Y M	- Mark bookmark-file bookmarks
Z M	- Mark bookmark-list bookmarks

T m %	- Mark bookmarks having at least one tag that matches a regexp
T m +	- Mark bookmarks having at least one tag in a set    (OR)
T m *	- Mark bookmarks having all of the tags in a set     (AND)
T m ~ +	- Mark bookmarks not having any of the tags in a set (NOT OR)
T m ~ *	- Mark bookmarks not having all of the tags in a set (NOT AND)

T u %	- Unmark bookmarks having a tag that matches a regexp
T u +	- Unmark bookmarks having at least one tag in a set  (OR)
T u *	- Unmark bookmarks having all of the tags in a set   (AND)
T u ~ +	- Unmark bookmarks not having any tags in a set (NOT OR)
T u ~ *	- Unmark bookmarks not having all tags in a set (NOT AND)

>	- Toggle showing only marked bookmarks
<	- Toggle showing only unmarked bookmarks

- >	- Omit the marked bookmarks; un-omit them if after `- S'

j >	- Jump to marked bookmarks in other windows
C-h >	- Show info about marked bookmarks (`C-u': internal form)

Y > -	- Move the marked bookmarks to a bookmark file
Y > +	- Copy the marked bookmarks to a bookmark file
Y > 0	- Copy the marked bookmarks to a new bookmark file
M-l	- Load marked bookmark-file bookmarks  (extra load)

M-R	- Relocate the marked bookmarks 

a >	- Edit annotations of marked bookmarks (`C-u': all)
E	- Edit internal Lisp records of marked bookmarks  (`C-u': all)

M-X	- Toggle temporary/savable status of marked bookmarks

M-d >	- Open Dired for marked file & directory bookmarks

M-s a C-s	- Isearch the marked bookmarks            (`C-u': all)
M-s a C-M-s	- Regexp-isearch the marked bookmarks     (`C-u': all)
M-s a M-s	- Regexp-search the marked file bookmarks (`C-u': all)
M-q		- Query-replace the marked file bookmarks

T > l	- List tags used in marked bookmarks  (`C-u': show tag values)
T > v	- Set value of a tag, for each marked bookmark    (`C-u': all)
T > C-y - Add tags copied from a bookmark to those marked (`C-u': all)
T > q	- Replace tags of marked with copied tags         (`C-u': all)

H > +	- Set highlighting for marked bookmarks
H > H	- Highlight the marked bookmarks
H > U	- Unhighlight the marked bookmarks

s >	- Sort marked (`>') bookmarks first
s D	- Sort flagged (`D') bookmarks first

Here's the `Mark' submenu of the `Bookmark+' menu-bar
menu, followed by its `Bookmarks of Type' submenu for
marking bookmarks of a specific kind:

https://www.emacswiki.org/emacs/BookmarkPlus#MarkMenu



  reply	other threads:[~2020-07-24  3:15 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-23 23:00 Add new functions to mark/unmark/delete all bookmarks Matthew White
2020-07-24  3:15 ` Drew Adams [this message]
2020-07-24  9:07   ` Matthew White
2020-07-24 15:07     ` Stefan Monnier
2020-07-24 15:18       ` Lars Ingebrigtsen
2020-07-24 17:03         ` Matthew White
2020-07-24 17:09           ` Stefan Monnier
2020-07-28 15:54             ` Matthew White
2020-07-28 16:14               ` Stefan Monnier
2020-07-28 16:36                 ` Matthew White
2020-07-28 18:06               ` Eli Zaretskii
2020-07-28 18:15                 ` Matthew White
2020-07-24 17:07         ` Drew Adams
2020-07-24 17:07       ` Drew Adams
2020-07-24 16:43     ` Drew Adams
2020-07-24  5:31 ` Yuri Khan
2020-07-24 15:05   ` Stefan Monnier
2020-07-24 16:56     ` Noam Postavsky
2020-07-24 19:00     ` Extend tabulated-list-mode to support marks Yuri Khan
2020-07-25 13:46       ` Dirk-Jan C. Binnema
2020-07-25 14:23       ` Stefan Monnier
2020-07-25 14:32         ` Yuri Khan
2020-07-26 12:43       ` Stefan Kangas
2020-07-24 17:07   ` Add new functions to mark/unmark/delete all bookmarks Drew Adams
2020-07-24 19:07 ` Karl Fogel
2020-07-25 10:46   ` Matthew White
2020-07-25 10:58     ` Eli Zaretskii
2020-07-25 15:33       ` Michael Albinus
2020-07-25 15:38         ` Eli Zaretskii
2020-07-25 15:56           ` Michael Albinus
2020-07-25 16:30             ` Eli Zaretskii
2020-07-25 16:33               ` Eli Zaretskii
2020-07-25 16:43                 ` Michael Albinus
2020-07-25 16:55                   ` Eli Zaretskii
2020-07-25 18:28                     ` Matthew White
2020-07-25 18:54                       ` Eli Zaretskii
2020-07-25 20:36     ` Karl Fogel
2020-07-25 21:14       ` Stefan Monnier
2020-07-25 22:40         ` Karl Fogel
2020-07-29 22:16     ` Karl Fogel
2020-07-31  2:58       ` Matthew White
2020-07-31  6:01         ` Karl Fogel
2020-08-02 22:13         ` Karl Fogel
2020-08-06 17:59           ` Matthew White
2020-08-07  1:10             ` Karl Fogel
2020-08-07  8:33               ` Matthew White
     [not found]               ` <jwveeojyxh1.fsf-monnier+emacs@gnu.org>
     [not found]                 ` <87a6z715do.fsf@red-bean.com>
2020-08-07 17:05                   ` Matthew White
2020-08-07 17:18                     ` Eli Zaretskii
2020-08-08  8:23                       ` Matthew White
2020-08-09 20:19                     ` Karl Fogel
2020-08-10  5:41                       ` Matthew White
     [not found] <<20200724005105.11f85d5f@pineapple>
     [not found] ` <<87pn8ku3y9.fsf@red-bean.com>
     [not found]   ` <<20200725124618.49a073b1@pineapple>
     [not found]     ` <<83lfj7dfp2.fsf@gnu.org>
     [not found]       ` <<87tuxvpq1r.fsf@gmx.de>
     [not found]         ` <<83d04jd2pm.fsf@gnu.org>
2020-07-25 16:07           ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=03f641b5-9ff9-476f-afab-e674e4027d27@default \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=mehw.is.me@inventati.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.