我有一個文本文件。 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. Emacs:如何複製正則表達式匹配?
- 3. 複製串用正則表達式
- 4. 正則表達式複製和粘貼
- 5. 限制複雜的正則表達式
- 6. 如何複製正則表達式
- 7. 正則表達式複製C#
- 8. 複製和使用正則表達式
- 9. 複製使用正則表達式
- 10. 正則表達式在Emacs中搜索
- 11. 的Emacs Lisp逃脫正則表達式
- 12. Emacs的正則表達式替換
- 13. emacs空間正則表達式搜索
- 14. 使用Emacs替換正則表達式
- 15. 正則表達式的問號(在Emacs)
- 16. Emacs正則表達式替換組
- 17. 在vim中複製正則表達式(正則表達式)匹配
- 18. 正則表達式:複數
- 19. 正則表達式重複
- 20. 正則表達式重複
- 21. 複雜的正則表達式的正則表達式
- 22. 正則表達式:在正則表達式區域內匹配多次(emacs)
- 23. 正則表達式(正則表達式)
- 24. 正則表達式(正則表達式)
- 25. 正則表達式(正則表達式)
- 26. 正則表達式 - 控制
- 27. 限制在正則表達式表達
- 28. 使用Emacs替換正則表達式保留製表符到製表符
- 29. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 30. 正則表達式(VBA) - 重複模式
謝謝,這正是我想要的,但由於我在LISP上吮吸而無法做到。 – 2010-02-03 11:21:11