如何突出显示emacs中的特定行?
我需要突出显示facility for emacs,以便在使用它时标记文件中的一些行。如何突出显示emacs中的特定行?,emacs,bookmarks,Emacs,Bookmarks,我需要突出显示facility for emacs,以便在使用它时标记文件中的一些行。 它应该是类似于M-SHL的smth,但应该基于行号而不是正则表达式工作。我想突出显示当前行,但“hl行”模式不适合,因为我需要突出显示许多行,每次我按每个行上的特定键。我只是快速编写了以下内容: (defun find-overlays-specifying (prop pos) (let ((overlays (overlays-at pos)) found) (while ov
它应该是类似于M-SHL的smth,但应该基于行号而不是正则表达式工作。我想突出显示当前行,但“hl行”模式不适合,因为我需要突出显示许多行,每次我按每个行上的特定键。我只是快速编写了以下内容:
(defun find-overlays-specifying (prop pos)
(let ((overlays (overlays-at pos))
found)
(while overlays
(let ((overlay (car overlays)))
(if (overlay-get overlay prop)
(setq found (cons overlay found))))
(setq overlays (cdr overlays)))
found))
(defun highlight-or-dehighlight-line ()
(interactive)
(if (find-overlays-specifying
'line-highlight-overlay-marker
(line-beginning-position))
(remove-overlays (line-beginning-position) (+ 1 (line-end-position)))
(let ((overlay-highlight (make-overlay
(line-beginning-position)
(+ 1 (line-end-position)))))
(overlay-put overlay-highlight 'face '(:background "lightgreen"))
(overlay-put overlay-highlight 'line-highlight-overlay-marker t))))
(global-set-key [f8] 'highlight-or-dehighlight-line)
(此处查找来自的覆盖)
它将突出显示当前行,再次使用时将删除该行
也许以下几点也很有用:从缓冲区中删除所有突出显示(可能很危险,如果突出显示重要内容,您可能不需要)
你可以用。您可以从MELPA安装bm.el
bm.el提供了bm切换
以高亮显示和取消高亮显示当前行。
el还提供了bm bookmark regexp
,它只突出显示匹配的行。
通过bm-previous
和bm-next
下面是bm.el的示例配置
(require 'bm)
(global-set-key (kbd "<f5>") 'bm-toggle)
(global-set-key (kbd "<f6>") 'bm-previous)
(global-set-key (kbd "<f7>") 'bm-next)
(global-set-key (kbd "<f8>") 'bm-bookmark-regexp)
(需要“bm”)
(全局设置键(kbd“”)“bm切换)
(全局设置键(kbd“”)“bm上一个)
(全局设置键(kbd“”)'bm next)
(全局设置键(kbd“”)'bm书签regexp)
满足您的要求。使用(默认情况下)在点处设置书签。您可以为这些书签配置所需的类型。这类似于bm.el
提供的内容(syohex的回答),但更灵活。“某些行”是一个区域。请参见可能是您需要突出显示。ellibrary这些行不是连续的。这只是一组有趣的台词。酷,我甚至不知道我想要这个+1下面的“bm”软件包是我推荐的,而不是改造车轮。但是发明一个轮子是很有趣的!如果点位于某些线条的开头或结尾,这不起作用。或者,它可能与我的大括号设置冲突。但是,在线条的最末端,取消高亮仍然不起作用。既然你提到了它,当点位于线条的末尾时,我将其删除是不起作用的。如果你需要更改颜色,这是名单,谢谢。这很好,但我认为对于这样简单的任务来说有点重。bm简单、灵活、强大且直观。请注意,书签在EWW缓冲区中不起作用,只在目录和文件中起作用。我在Emacs中寻找一种解决方案,它允许我突出显示EWW缓冲区中的某些行,我想到了寄存器和书签。虽然可以使用寄存器来记住网页缓冲区中的某些点,然后跳转到它们,但不能使用书签。(EWW缓冲区不是OP的要求,我只是想扩展你的答案。)@hajovonta:不,我不认为这是真的。使用Bookmark+,EWW书签应该可以正常工作,包括缓冲区。当然,EWW本身一直在变化,所以一些变化可能会带来一个我还没有意识到的问题。如果您发现问题,请向我报告:M-x customize group bookmark plus
,然后(例如,单击)链接Send Bug report
,该链接可帮助您准备给我的电子邮件。我不是专家,但我有一种感觉,EWW书签只用于EWW URL。我需要在EWW缓冲区中为一个位置添加书签。书签+(Bookmark+)可能吗?@hajovonta:不,EWW书签的工作原理与普通书签类似。它们不仅为URL添加书签,还为您设置书签的页面(如HTML页面)上的位置添加书签。您还可以在这样的位置设置区域书签。
(require 'bm)
(global-set-key (kbd "<f5>") 'bm-toggle)
(global-set-key (kbd "<f6>") 'bm-previous)
(global-set-key (kbd "<f7>") 'bm-next)
(global-set-key (kbd "<f8>") 'bm-bookmark-regexp)