我有一个文本文件.Emacs可以根据正则表达式选择文本并将其置于kill-ring中,这样我就可以将其复制到其他地方了吗?像regex-kill-ring-save之类的东西?
受到已经给出的注释的启发(Charles的答案不符合我的期望),我在isearch / isearch-regexp模式映射中添加了一个新函数,该函数仅将匹配的字符串放入kill环(而Charles建议杀死从当前点到匹配字符串的结尾):
(defun hack-isearch-kill ()
"Push current matching string into kill ring."
(interactive)
(kill-new (buffer-substring (point) isearch-other-end))
(isearch-done))
(define-key isearch-mode-map (kbd "M-w") 'hack-isearch-kill)
Run Code Online (Sandbox Code Playgroud)
关于isearch / isearch-regexp方法(可以分别使用C-s和启用C-M-s)的好处是,您可以看到搜索字符串不断增长,可以M-w在满意的情况下立即将其复制(并返回到原来的位置)。之前C-u C-Space)。
这适用于Emacs 23.1。不知道它是否在所有情况下都有效。无论如何,我希望您觉得它有用:)
更新:遍历emacswiki时,我偶然发现KillISearchMatch,它暗示或多或少的相同(以及更多提示...)。
干杯,丹尼尔