我正在尝试改进我的emacs的搜索功能,并允许它在其他窗口中搜索(当打开多个窗口时),搜索我当前正在搜索的单词并搜索鼠标单击。 我使用this unit-at-cursor创建了以下函数:
(defun seek-other-tab ()
(interactive)
(setq unit (elt (unit-at-cursor 'word) 0) // gets the word at which the cursor is
(other-window 1) // get to the next window
(search-forward unit nil nil))) // search...
和
(defun seek-buffer ()
(interactive)
(search-forward (elt (unit-at-cursor 'word) 0))
然而,这比手动搜索其他缓冲区弱,因为a。它没有环绕和b。它不记得搜索所以基本上我需要使用这两个函数进行有效搜索。它也没有将候选人标记为isearch-forward。
关于使用鼠标作为搜索者(我想像Alt-mouse一样选择一个单词并查找其所有实例 - 比如GVIM shift-mouse1),我甚至不知道如何分配鼠标点击:(
所以我的问题是: 如何改进我的功能以进行环绕搜索并突出显示选择\使isearch记住搜索,这样至少我将能够继续使用C-s进行搜索? 如何制作第三个功能,选择鼠标触摸的单词并搜索实例(最好还突出显示)
更新: highlight_symbol模式几乎是我想用鼠标作为搜索设备所需要的:
(global-set-key [(control shift mouse1)] 'highlight-symbol-at-point)
但是,该功能仍然只在光标下看而不是鼠标位置。 会在另一个主题中问它。 我仍然无法为其他窗口中的(可包装)搜索项目创建一个不错的功能:(
答案 0 :(得分:1)
在misearch.el中存在multi-isearch
,如果没有提供您正在寻找的所有内容,这可能会提供一个很好的起点。
答案 1 :(得分:0)
(defalias 'search-other-window (read-kbd-macro "M-b C-s C-w C-x o C-s C-s"))
(global-set-key (kbd "C-=") 'search-other-window)
并通过Ctrl- =获得所需的行为。 它还将搜索保存在isearch内存中,因此连续的C-s将继续搜索。
有点沉闷的解决方案,但是谁说所有的解决方案都必须非常出色并且闪亮......