如果目标是导航,我建议通过流行的ace-jump-mode
.
如果目标只是持久的行编号,您可以考虑longlines-mode
代替visual-line-mode
(但我个人会避免这种情况)。
王牌跳跃@GitHub
https://github.com/winterTTr/ace-jump-mode
演示:
http ://dl.dropboxusercontent.com/u/3254819/AceJumpModeDemo/AceJumpDemo.htm
有了它,您只需按两次按键就可以跳转到任何一行。
除了行,你可以跳到任何单词的开头;还有个别字符级的跳跃精度。如果需要,可以将其配置为限制跳转到当前窗口/缓冲区,或跨当前帧中的所有窗口,甚至是多帧。
但是,它不会将换行识别为可跳转位置。同样,如果它对您来说真的很重要,您可能会考虑longlines-mode
作为解决方案,但据我所知,它被认为是 hack'ish 并且不推荐使用. 但是,在第一个示例中,这些行将完全按照您的需要重新编号。visual-line-mode
longlines-mode
我假设目标是导航,因此,我认为您只需稍加练习就会发现,基于单词的跳转甚至通过增量搜索跳转是一种更好的解决方案。
更新
这是一个使用 emacs 缩小功能欺骗 ace-jump 在 N 行内扫描的简单解决方案;也许其他人可以改进它。您也可以对单词和行模式执行类似的操作。
(defun brian-ace-jump-to-char-within-N-lines (&optional n)
(interactive "p")
(let* ((N (or n 0))
(query-char (read-char "Query Char:"))
(start (save-excursion
(forward-line (- N))
(point)))
(stop (save-excursion
(forward-line (1+ N))
(point))))
(unwind-protect
(condition-case err
(progn
(narrow-to-region start stop)
(ace-jump-char-mode query-char))
(error
(message (error-message-string err))))
(widen))))