使用正则表达式复制 Emacs

标签 emacs

我有一个文本文件。 Emacs 可以根据正则表达式选择文本并将其放入 kill-ring,以便我可以将其复制到其他地方吗?像regex-kill-ring-save这样的东西?

最佳答案

受到已经给出的评论的启发(查尔斯的回答不像我想要的那样工作),我在 isearch/isearch-regexp 模式映射中添加了一个新函数,它只将匹配的字符串放入终止环中(而查尔斯的提议杀死了从当前点到匹配字符串的结尾):

(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)

isearch/isearch-regexp 方法(你可以分别用 C-sC-M-s 启用)的好处是你可以看到你的搜索字符串在增长,你可以用 M-w 复制它。一旦您感到满意(然后使用 C-u C-Space 回到您之前去过的地方)。

这适用于 Emacs 23.1。不知道它是否适用于所有情况。无论如何,我希望你觉得它有用:)

更新:浏览 emacswiki 我偶然发现了 KillISearchMatch这表明或多或少相同(加上更多提示......)。

干杯,
丹尼尔

关于使用正则表达式复制 Emacs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183726/

相关文章:

vim - 从 Vim 切换到 Emacs - 如何高效地编辑代码

emacs - 如何在 Emacs 中找到建议功能的 defadvice?

emacs - 全局覆盖 emacs 键绑定(bind)

emacs - 使用语义定位符号时出现"void-variable last-command-char"错误

regex - Emacs:正则表达式替换以更改大小写(在脚本中)

emacs - 如何在 LispBox 中调试 LISP 编译器错误?

emacs - 本地化 Emacs 快捷方式

emacs - 使用 emacs 和 ssh 打开远程文件的最佳方式是什么

emacs:搜索文件名的一部分

emacs - 如何为 emacs 制作缩进线