我有一个文本文件。 Emacs可以根据正则表达式选择文本并将其放入杀死环中,以便我可以将它复制到其他地方?像正则表达式杀死戒指保存?Emacs复制正则表达式
6
A
回答
3
由已给予意见的启发(查尔斯回答没有工作,我希望它),我添加了一个新功能到ISEARCH/ISEARCH,正则表达式模式地图这使只有匹配的字符串进去杀环(而查尔斯建议从目前的点杀,结束匹配字符串):
(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,正则表达式的方法(你可以使用分别C-s
和C-M-s
启用)的好处是,你可以看到你的搜索字符串增长,你可以复制只要你满意,你就可以用M-w
(并回到你之前使用C-u C-Space
的地方)。
这适用于Emacs 23.1。不知道它是否适用于所有情况。无论如何,我希望你觉得它有用:)
UPDATE:通过我绊了KillISearchMatch这表明或多或少相同(加上一些更多的技巧......)的emacswiki去。
干杯, 丹尼尔
1
我不知道是否有这样的功能了,但你可以用一个键盘宏做:
- 开始录制骨节病宏:
C-x (
- 搜索与
search-forward-regexp
您的正则表达式 - 使用各种emacs导航命令移动到匹配的开始位置(您想要杀死的文本),例如
search
或backward-word
等 - 马克:
C-spc
- 移动到你的比赛结束
- 杀死文本:
C-w
然后,您可以用命名M-x name-last-kbd-macro
这样就可以执行键盘宏宏与名称而不是C-x e
。
如果您希望保存未来会话的宏,您可以打开您的.emacs
并将宏插入缓冲区中,其中M-x insert-kbd-macro
。在您将键绑定到宏之后,就像您将键绑定到正常的emacs功能一样,例如(global-set-key "\C-c m" 'funky-macro-macro)
。
0
Isearch+已经做了这个。它可以选择设置搜索目标周围的区域。您可以在Isearch的任何时间使用C-SPC切换此项。
相关问题
- 1. Emacs的正则表达式组正则表达式替换
- 2. 限制复杂的正则表达式
- 3. 正则表达式复制和粘贴
- 4. emacs空间正则表达式搜索
- 5. 使用Emacs替换正则表达式
- 6. 正则表达式的问号(在Emacs)
- 7. 正则表达式在Emacs中搜索
- 8. 正则表达式重复
- 9. 正则表达式:在正则表达式区域内匹配多次(emacs)
- 10. 正则表达式(正则表达式)
- 11. 正则表达式(正则表达式)
- 12. 正则表达式 - 控制
- 13. 使用Emacs替换正则表达式保留制表符到制表符
- 14. 正则表达式正则表达式正则表达式使用正则表达式,但不是与Python
- 15. Ruby正则表达式:复杂模式
- 16. 正则表达式(VBA) - 重复模式
- 17. 正则表达式的重复模式
- 18. 正则表达式 - 重复模式
- 19. PHP-MySQLi替换为正则表达式/正则表达式/正则表达式
- 20. 正则表达式正则表达式返回的值正则表达式
- 21. 正则表达式正则表达式模仿正则表达式
- 22. 正则表达式表达
- 23. 正则表达式表达
- 24. 与Find + emacs-regex模式匹配的正则表达式子表达式
- 25. Javascript正则表达式错误(无效的正则表达式:/?/:无法重复)
- 26. 需要帮助的JavaScript正则表达式:正则表达式太复杂
- 27. 重复正则表达式组
- 28. 正则表达式重复组
- 29. 组重复正则表达式?
- 30. 正则表达式 - 重复组
谢谢,这正是我想要的,但由于我在LISP上吮吸而无法做到。 – 2010-02-03 11:21:11