2008-12-22 63 views
61

記事本++有一個方便的功能:如果您在文本中選擇一個單詞(不一定是關鍵字),則該單詞在整個文本中突出顯示。這也可以在Emacs中完成嗎?如果是這樣,怎麼樣?如何在Emacs緩衝區中突出顯示所有出現的單詞?

它不一定非得像Notepad ++一樣工作(即通過選擇)。理想情況下,我想設置一個鍵綁定,使光標下的單詞的所有出現都被突出顯示。

如果突出顯示是永久性的,即移動點離開突出顯示的單詞應該是而不是會導致突出顯示被刪除。

此外,如果有解決方案可以在高亮區之間導航(使用自定義鍵綁定),將會非常有用。

回答

34

也許高亮symbol.el在http://nschum.de/src/emacs/highlight-symbol/是你在找什麼:

alt text

+1

我試過了,但無法讓它工作 - emacs抱怨「Symbol的值爲變量:void:highlight-symbol-idle-delay」。 – Headcrab 2008-12-24 02:20:13

+1

我確實有這個問題。我最終評論了整個(defcustom highlight-symbol-idle-delay ...)部分,並在defun highlight-symbol-update-timer ...之前移動(defvar highlight-symbol-idle-delay ...)。 ),這將避免錯誤。 – polyglot 2008-12-26 03:34:47

+0

是的,最後我做了同樣的事情。 – Headcrab 2008-12-26 08:45:25

5

這可能不是像你一樣你希望什麼,但如果你把

(global-hi-lock-mode 1) 

.emacs文件,那麼你可以鍵入C-x w h REGEX <RET> <RET>突出的REGEX所有出現,並C-x w r REGEX <RET>再次unhighlight他們。再次,不如你可能喜歡的優雅,但它會工作。

3

檢查Interactive Highlighting

應該是:

Ç - X 瓦特^h<RET><RET>

+0

首先,高鎖定模式應通過M-x高鎖定模式啓用。然後,它的工作。順便說一句,交互式突出顯示的鏈接已經死了。它現在在這裏:https://www.gnu。org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html – aspirin 2013-12-13 14:54:13

10

Light-symbol將突出顯示任何符號點已結束。

或者,您可以使用occur,其中列出了與正則表達式匹配的所有行。快速查看課程中的所有功能很有用。

+0

這看起來很不錯,但它是如何知道它是否找到相同的符號或具有相同名稱的另一個符號? – HelloGoodbye 2015-06-26 01:56:45

32

類型C-s,然後鍵入當前字或鍵入C-w。作爲獎勵,您現在可以再次點擊C-s來搜索該詞。

這叫做增量搜索

+5

對於它的價值,我現在意識到了這個問題的意圖:即使您在進行其他工作(如移動,打字等)時,也希望事件突出顯示爲「永久」(直到您關閉它)爲止。搜索)將不起作用(突出顯示爲「臨時」;您可以在緩衝區中移動,但很難進行新的編輯工作)。我使用(並且已經提出)'M-x highlight-regexp`解決方案(並將其綁定到快捷方式)。 – ShreevatsaR 2012-10-25 05:21:48

66

hi-lock建議是很好的。我覺得它更容易使用的Mx版本,雖然:

的Mxhighlight-regexpRET<REGEXP>

的Mxhighlight-phraseRET<REGEXP>

highlight-phrase只是有點糖的周圍highlight-regexp忽略大小寫並轉換正則表達式中的空格以匹配任意的空格。便利。

13

我用的是閒置的亮點

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

M-X閒置高亮設置一個空閒計時器,突出所有出現在點下字的緩衝區。

要啓用它爲所有的編程模式,在~/.emacs.d/init.el

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

命令庫highlight.el 讓你(UN)高亮文本匹配的正則表達式(在這種情況下,一個符號),利用覆蓋或文本屬性。你可以在事件之間循環。突出顯示可以是暫時的或持久的。 (more info)

2

嘗試iedit。它突出顯示了單詞中的單詞,並讓您輕鬆編輯它的所有出現。通過額外的按鍵(C'),它隱藏了所有沒有該單詞的行。非常便利!

6

嘗試http://www.emacswiki.org/emacs/msearch.el 突出顯示用光標選擇的所有文本。 你必須拖動你想要突出顯示的字符串。這使您可以輕鬆更改選擇而不更改高光。

如果要保留突出顯示的字符串,可以將其凍結。

您可以將一個緩衝區奴役到另一個緩衝區。在主緩衝區中選擇的文本也將在從緩衝區中高亮顯示。這對比較緩衝區很有用。 在調查另一個文本時,在一個緩衝區中記錄註釋也很有用。您可以在筆記緩衝區中擁有一組關鍵字。拖過這樣一個關鍵字,它在調查文本中的出現將突出顯示。

我現在使用這種東西多年。我最近添加了凍結。所以,也許有些事情是壞的。如果是這種情況,請在http://www.emacswiki.org/emacs/msearch或這裏給我留言。

0

這也許將不突出,但將搜索詞沒有你需要鍵入它...

當你達到你想查的單詞,CS,然後閱讀完整的單詞與CW那麼你可以CS,它會搜索它。在我的Emacs中,它還高亮顯示了文檔中的所有實例。

相關問題