Are you interested in using only the *Bookmark List*
display to jump to bookmarks, or are you interested in jumping to them from any buffer?
If the former, you can bind the keys you want (0
to 9
or whatever) in bookmark-bmenu-mode-map
to commands that jump to particular bookmarks or to, say, the Nth next bookmark. Or you can just define a command that jumps to the Nth next bookmark, where you provide N as the prefix arg.
For example:
(defun my-jump-to-nth-bookmark (n)
"Jump to the Nth bookmark after point.
N is the numeric prefix argument."
(interactive "p")
(save-excursion
(next-line n)
(bookmark-jump (bookmark-bmenu-bookmark))))
But if you just want a quick way to get to the line of a particular bookmark (so you can hit RET
there), then you can use C-s
(or any of the other, search-related quick-access commands provided by various libraries) or SPC
with a prefix arg N to move down N lines.
If the latter, you can bind keys in the global-map
to commands that jump to specific bookmarks. Or you can just use bookmark-jump
to jump to any bookmark, choosing the bookmark name using completion. If all of your bookmark names have a common prefix such as mark-
(I would not recommend that, but that seems to be your case), then completion is as quick as TAB
N, e.g., TAB 3
.
The general command to jump to a bookmark is bookmark-jump
. You can define your own command that jumps to a particular bookmark by passing bookmark-jump
that bookmark name:
(defun my-bmk-jump-to-mark-3 ()
"Jump to bookmark `mark-3'."
(interactive)
(bookmark-jump "mark-3"))
Note: Library Bookmark+ offers many more possibilities for using bookmarks than does vanilla Emacs.
And as far as completion/narrowing for bookmark commands goes, no library offers as much as does Icicles. In particular, it extends what Bookmark+ offers in many ways.
BTW, your display of *Bookmark List*
is wrong, in showing your proposed keys in the %
column. That column is used for marking bookmarks (so you can act on them). It does not indicate key bindings. Or if you are proposing that it should show a key that jumps to the bookmark on that line, then you would need to rewrite the code that displays *Bookmark List*
accordingly.
More importantly, you would need to establish a convention of association of keys with bookmark names, such as the rudimentary one you show (key 3
corresponds to bookmark name mark-3
). You could certainly do that for your own use, but it would not be something that would be useful for others, IMO. Bookmarks take general names for a reason.
bookmark-jump
(or some variation of that command) with a completion/narrowing framework like ivy, helm, or ido.C-8 C-n
in the Bookmarks List buffer (or most other buffers) will jump down 8 lines.avy
backend @abo-abo.ace-link
. That includes a number of commands to jump to "visible links" of various kinds. Should be fairly straightforward to add a variant for bookmarks in the list buffer. (Actually -- just useavy-goto-line
....)