gpt4 book ai didi

emacs - 在 emacs 中提供搜索区域

转载 作者:行者123 更新时间:2023-12-01 12:43:29 24 4
gpt4 key购买 nike

有没有办法为 isearch 提供一个区域?

我想重载 isearch 以便:

C-s -> 1. 如果没有选择区域,则像往常一样 isearch,或者 2. isearch with region as to-be-used-for-search string

示例:我“选择”单词“no exit”,然后 C-s 应该在缓冲区中搜索“no exit”。在某种程度上,当光标位于“no”的开头时,可以使用 C-s C-w C-w 来完成。我想知道是否有办法扭转这种情况,所以首先选择(某种方式)然后使用选择进行搜索

最佳答案

您可能会发现命令 narrow-to-regionwiden 很有用,执行 C-hfnarrow-to-regionRETC-hfwidenRET 了解更多

更新

这里有一些快速而肮脏的代码来做你想做的事,为了简单起见我没有处理一些情况,但这应该给出一个想法

(add-hook 'isearch-mode-end-hook (lambda ()
(when (buffer-narrowed-p)
(widen))))

(defun my-isearch(&optional start end)
(interactive "r")
(when (region-active-p)
(narrow-to-region start end))
(call-interactively 'isearch-forward-regexp))

更新 2

试试下面的函数,这应该做你想做的

(defun my-isearch(&optional start end)
(interactive "r")
(if (region-active-p)
(progn
(let ((string (buffer-substring-no-properties start end)))
(deactivate-mark)
(isearch-resume string nil nil t string nil)))
(call-interactively 'isearch-forward-regexp)))

关于emacs - 在 emacs 中提供搜索区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com