是否可以在多个窗口中突出显示符号? 我经常使用优秀的" Highlight-Symbol"或者" Iedit"用于搜索和突出显示源文件中的符号的包。不幸的是,这仅适用于当前窗口的缓冲区。因此,我正在寻找一种简单的方法来突出显示当前窗口中的符号,以及其他窗口中的符号(通常我使用3或4个源文件窗口)。
我也试过"发生/ moccur"或类似但他们总是打开一个新窗口,其中包含一系列出现的事件。
有什么想法吗?
答案 0 :(得分:2)
这个功能应该可以解决问题。它需要原件并遍历窗口列表。 (奇怪的是,walk-windows
没有用。)
(defun highlight-symbol-at-point-all-windows ()
"Toggle highlighting of the symbol at point in all windows."
(interactive)
(let ((symbol (highlight-symbol-get-symbol)))
(unless symbol (error "No symbol at point"))
(save-selected-window ; new
(cl-dolist (x (window-list)) ; new
(select-window x) ; new
(if (highlight-symbol-symbol-highlighted-p symbol)
(highlight-symbol-remove-symbol symbol)
(highlight-symbol-add-symbol symbol))))))
答案 1 :(得分:0)
在库Highlight(highlight.el
)中尝试命令 hlt-highlight-symbol
。
默认情况下绑定到 C-x X h s
(默认情况下,库中的命令使用前缀键C-x X
)。使用前缀arg ( C-u
C-x X h s
),它会对所有可见或图标化的缓冲区起作用。如果没有前缀arg,它只作用于当前缓冲区(如果它处于活动状态,则仅作用于区域)。
您可以取消强调使用相同的键序列,但使用 u
而不是 h
。因此C-u C-x X u s
取消所有(可见或图标化)缓冲区中的符号,C-x X u s
仅在当前缓冲区(或活动区域)中取消亮点。
(我今天刚刚添加了这个前缀-arg行为。如果您从MELPA而不是上面的(EmacsWiki)链接中提取库,那么您可能需要等待一天才能获得最新版本。