如何在Emacs缓冲区中突出显示所有出现的单词?

记事本++有一个方便的function:如果你select一个文字(不一定是一个关键字),这个词在整个文本中突出显示。 这也可以在Emacs中完成吗? 如果是的话,怎么样?

它不一定非得像Notepad ++一样工作(即通过select)。 理想情况下,我想build立一个键绑定,导致光标下的所有单词被突出显示。

如果突出显示是永久性的,那就好了,也就是说,从突出显示的单词移开的点应该导致突出显示被删除。

另外,如果有解决scheme可以在高亮区之间导航(使用自定义键绑定),那将会非常有用。

也许在http://nschum.de/src/emacs/highlight-symbol/的 highlight-symbol.el是你正在寻找的东西:

替代文字

hi-lockbuild议是好的。 但是我认为使用Mx版本更容易:

Mx highlight-regexp RET <REGEXP>

Mx highlight-phrase RET <REGEXP>

highlight-phrasehighlight-regexp周围只是一些糖,忽略大小写,并在正则expression式中转换空格以匹配任意空格。 便利。

键入Cs ,然后键入当前字或键入Cw 。 作为奖励,你现在可以再次击中Cs来search这个词。

这被称为增量search

我使用的是闲置高亮

http://www.emacswiki.org/emacs/IdleHighlight

Mx空闲高亮设置一个空闲计时器,突出显示该点下的单词的缓冲区中的所有出现。

要在所有的编程模式下启用它,在~/.emacs.d/init.el

 ;; highlight words (add-hook 'prog-mode-hook (lambda () (idle-highlight-mode t))) 

光符号将突出显示任何符号点。

或者,您可以使用发生 ,其中列出匹配正则expression式的所有行。 快速查看课程中的所有function是有用的。

试试http://www.emacswiki.org/emacs/msearch.el用光标select的文本的所有出现都被突出显示&#x3002; 您必须拖动要突出显示的string。 这使您可以轻松更改select而不更改高亮。

如果你想保留一个string的突出显示,你可以冻结它。

您可以将一个缓冲区奴役到另一个缓冲区。 在主缓冲区中选中的文本也将在从缓冲区中高亮显示。 这对比较缓冲区很有用。 在调查另一个缓冲区中的文本的同时,还可以在一个缓冲区中logging笔记。 您可以在笔记缓冲区中拥有一组关键字。 拖过这样一个关键字,其调查文本中的出现将突出显示。

我现在正在使用这些东西。 最近我加了冻结。 所以,也许有什么东西坏了。 如果是这种情况,请在http://www.emacswiki.org/emacs/msearch或这里留言&#x3002;

这可能不如你所希望的那么好,但是如果你放了

 (global-hi-lock-mode 1) 

在您的.emacs文件中,然后可以键入Cx wh REGEX <RET> <RET>以突出显示所有REGEX发生,并且Cx wr REGEX <RET>使其再次不亮。 再次,不如你可能喜欢的优雅,但它会起作用。

选中交互式突出显示

应该:

Cx w < word > <RET> <RET>

库中的命令highlight.el让你(un)使用覆盖或文本属性来突出显示匹配正则expression式的文本(在本例中是一个符号)。 你可以在事件之间循环。 突出显示可以是临时的或持久的。 (更多信息) 。

试试iedit.el。 它在点上突出显示了单词,并让您轻松编辑所有的事件。 通过额外的按键(C'),它隐藏了所有没有该单词的行。 非常便利!