Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 使用扩展区域在emacs中进行更好的搜索_Search_Emacs_Elisp_Expand_Region - Fatal编程技术网

Search 使用扩展区域在emacs中进行更好的搜索

Search 使用扩展区域在emacs中进行更好的搜索,search,emacs,elisp,expand,region,Search,Emacs,Elisp,Expand,Region,假设我们有以下文本: (print "thIis-is-a-text") 光标位于字符“h”和“i”之间的单词“this”中 在emacs中,如果我键入C-s C-w,则要搜索的文本为“is” 同样,C-w是“是” 同样,C-w是“is-is-a” 同样,C-w是“is-is-a-text” 同样,C-w是“is-is-a-text” 还有一个emacs插件:“ExpandRegion通过语义单位增加所选区域。只需按住该键,直到它选择您想要的内容。” 所以我想让C-s C-w更加智能化:与扩展

假设我们有以下文本:

(print "thIis-is-a-text")
光标位于字符“h”和“i”之间的单词“this”中

在emacs中,如果我键入C-s C-w,则要搜索的文本为“is”

同样,C-w是“是”

同样,C-w是“is-is-a”

同样,C-w是“is-is-a-text”

同样,C-w是“is-is-a-text”

还有一个emacs插件:“ExpandRegion通过语义单位增加所选区域。只需按住该键,直到它选择您想要的内容。”

所以我想让C-s C-w更加智能化:与扩展区域相结合

光标位于字符“h”和“i”之间,在单词“this”中,我的目标是:

当我键入C-s C-w时,单词“this”将是要搜索的文本

同样是“这是一个文本”

同样是“这是一个文本”

再次将是“打印”这是一个文本“

同样是“(打印“this-is-a-text”)

..(行为类似于展开区域,可能这不是一个好的示例…)


由于我发现有时expand region在搜索文本时非常有用,我希望有人能为我编写一些代码来实现这一点,因为我是emacs和elisp的新手。谢谢,请原谅我的英语不好!:)

有一个非常简单的包,名为thingatpt,它使用thingatpt来执行类似于expand region的操作。我一直在使用一个for quit有一段时间,这增加了isearch支持。这个问题提醒我分叉并提出拉取请求。我的init.el中有以下内容:

(define-key isearch-mode-map (kbd "C-S-s") 'upward-isearch-thing)
(define-key isearch-mode-map (kbd "M-3") 'upward-isearch-thing)

(global-set-key (kbd "C-S-s") 'upward-mark-thing)
(global-set-key (kbd "M-3") 'upward-mark-thing)

(setq upward-mark-thing-list
      '(email
        url
        word
        symbol
        string
        (up-list . *)
        paragraph
        ))

我尝试过扩展区域,我想我更喜欢它,但它看起来复杂得多,在开始使用它之前,我必须添加isearch支持。希望有一天我(或其他人)能找到它。

谢谢你的回答。但这似乎只适用于C-s C-w一次(在光标下选择当前单词).当我在C-s之后继续键入C-w时,要搜索的文本似乎不像插件“expand region”(不尝试扩展region)那样运行。在expand region的github项目页面上提出一个功能请求。这应该很有用。我刚刚尝试了你的thingopt。它工作得很好。是的,expand region和thingopt都很棒,但expand region更适合于区域。thingopt在搜索中可能足够强大。谢谢,jpkotta。
(define-key isearch-mode-map (kbd "C-S-s") 'upward-isearch-thing)
(define-key isearch-mode-map (kbd "M-3") 'upward-isearch-thing)

(global-set-key (kbd "C-S-s") 'upward-mark-thing)
(global-set-key (kbd "M-3") 'upward-mark-thing)

(setq upward-mark-thing-list
      '(email
        url
        word
        symbol
        string
        (up-list . *)
        paragraph
        ))