Emacs 如何最快速地编辑增量搜索突出显示的文本?
鉴于这样的文本 你好,世界 我对“世界”进行增量搜索 C-s世界 这篇课文很精彩 你好,World 现在,我想键入新文本“全部”,而不是突出显示的文本,并获取: 大家好 我该怎么做?(注意,我不是在寻找“query replace”或类似的内容)。理想情况下,它必须是这样的: C-s世界BS AllEmacs 如何最快速地编辑增量搜索突出显示的文本?,emacs,Emacs,鉴于这样的文本 你好,世界 我对“世界”进行增量搜索 C-s世界 这篇课文很精彩 你好,World 现在,我想键入新文本“全部”,而不是突出显示的文本,并获取: 大家好 我该怎么做?(注意,我不是在寻找“query replace”或类似的内容)。理想情况下,它必须是这样的: C-s世界BS All 好吧,没有正式的方式来做你想做的事。如果isearch query replace不属于您定义的query replace亲属,则最近的方法将是“C-s World M-%All” (isearch
好吧,没有正式的方式来做你想做的事。如果
isearch query replace
不属于您定义的query replace
亲属,则最近的方法将是“C-s World M-%All
”
(isearch查询替换&可选分隔的REGEXP-FLAG)
使用要从上次搜索字符串中替换的字符串启动查询替换
您不能使用backspace,因为修改查询需要该键
我的init中有这样一个:
(defun le::isearch-kill-result ()
(interactive)
(if (use-region-p)
(call-interactively 'kill-region)
(kill-region (point) isearch-other-end))
(isearch-exit))
(define-key isearch-mode-map [(control w)] 'le::isearch-kill-result)
我的观点在搜索时没有任何用处,所以我不介意重写
C-w,你可能想选另一把钥匙。这也让我感到困扰,所以这就是我最终想到的
快速安装
首先,你需要。
如果您使用的是Emacs24或更高版本(或者使用ELMA/package.el),那么您可以使用获得Isearch+
M-x package-install <RET> isearch+ <RET>
然后将光标放在末尾,C-x C-e
在当前会话中进行此更改。
(这将使用C-。
,您可以将其更改为所需的任何键。)
如何使用
工作原理
它选择突出显示的文本(用适当的Emacs说法,它设置活动区域),然后C-w
删除该文本(将其放入删除环中)。如果需要使用C-y
,现在可以稍后粘贴字符串World
如果单词很长
isearch+中还有其他一些好东西。例如,如果“World”是一个较长的单词,如“Worcestershire”,并且您不想全部键入,则可以尝试以下方法:
C-s W C-( C-. C-w All
使用isearch+,C-(
会将当前“搜索目标”中的其余单词拉入您的搜索中,因此在本例中,它会将管弦乐队
添加到您当前的i-search中。需要更多的投票,这让我发疯。似乎它应该是内置的。我的意思是,我们有M-x蝴蝶,但没有这个。。。
C-s World C-. C-w All
C-s W C-( C-. C-w All