鉴于这样的文字
你好世界
我对“世界”进行增量搜索
Cs世界
文本被突出显示
你好,世界
现在我想输入新文本“All”而不是突出显示并得到:
大家好
我怎样才能做到这一点?(注意,我不是在寻找“查询替换”或类似的东西)。理想情况下,它必须是这样的:
Cs World BS 全部
鉴于这样的文字
你好世界
我对“世界”进行增量搜索
Cs世界
文本被突出显示
你好,世界
现在我想输入新文本“All”而不是突出显示并得到:
大家好
我怎样才能做到这一点?(注意,我不是在寻找“查询替换”或类似的东西)。理想情况下,它必须是这样的:
Cs World BS 全部
好吧,您不能使用backspace,因为修改查询需要该键。
我的初始化中有这个:
(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,你可能想选择另一个键。
AFAIK,没有正式的方法可以完全按照您的意愿行事。如果根据您的定义不属于亲属,则最接近的方式将是“ C-s World M-% All
” 。isearch-query-replace
query-replace
(isearch-query-replace &optional DELIMITED REGEXP-FLAG)
query-replace
从要从最后一个搜索字符串替换的字符串开始。
这也困扰着我,所以这就是我最终想出的。
首先你需要Isearch+。如果您使用 Emacs 24 或更高版本(或者有 ELMA/package.el),您可以使用
M-x package-install <RET> isearch+ <RET>
然后将此行添加到您的.emacs
:
(global-set-key (kbd "C-.") 'isearchp-set-region-around-search-target)
然后将光标放在末尾,C-x C-e
在当前会话中进行此更改。(这使用C-.
,您可以将其更改为您想要的任何键。)
C-s World C-. C-w All
它正在选择(在正确的 Emacs 用语中,它设置活动区域)突出显示的文本,然后C-w
正在终止该文本(将其放入终止环)。World
如果您愿意,现在可以稍后粘贴字符串C-y
。
isearch+ 中还有其他一些好东西。例如,如果“World”是一个较长的词,例如“Worcestershire”,而您不想全部输入,您可以试试这个:
C-s W C-( C-. C-w All
使用 isearch+,C-(
会将当前“搜索目标”中的其余单词拉到您的搜索中,因此在这种情况下,它会为您添加orchestershire
到当前的 i-search 中。