(Su pregunta es bastante abierta, por lo que podría cerrarse porque se basa principalmente en la opinión).
Lo que uso: Icicles multi-command icicle-goto-marker (vinculado a C-- C-SPC) para disparar alrededor de las marcas en cualquier búfer ( mark-ring) y icicle-goto-global-marker( C-- C-x C-SPC) para disparar entre las marcas globales ( global-mark-ring).
Las líneas de texto donde se encuentran los marcadores se utilizan como candidatos de finalización. Puede escribir texto (por ejemplo, subcadena, expresión regular) para limitar los candidatos a las líneas que coinciden. Puede alternar entre las líneas coincidentes, visitando cualquiera que desee. Si también usa la biblioteca crosshairs.el, la posición de un marcador que visita se resalta temporalmente con una mira, para que pueda ver rápidamente dónde está.
Aquí hay parte de la cadena de documentación para icicle-goto-marker:
Go to a marker in this buffer, choosing it by the line that includes it.
If `crosshairs.el' is loaded, then the target position is highlighted.
By default, candidates are sorted in marker order, that is, with
respect to their buffer positions. Use `C-M-,' or `C-,' to change the
sort order.
During completion you can use these keys:
`C-RET' - Goto marker named by current completion candidate
`C-down' - Goto marker named by next completion candidate
`C-up' - Goto marker named by previous completion candidate
`C-next' - Goto marker named by next apropos-completion candidate
`C-prior' - Goto marker named by previous apropos-completion candidate
`C-end' - Goto marker named by next prefix-completion candidate
`C-home' - Goto marker named by previous prefix-completion candidate
`<S-delete>' - Delete marker named by current completion candidate
Use `mouse-2', `RET', or `S-RET' to choose a candidate as the final
destination, or `C-g' to quit.
(global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark))).