Ich habe eine Textdatei. Kann Emacs Text basierend auf Regex auswählen und in den Kill-Ring legen, damit ich ihn woanders kopieren kann? So etwas wie Regex-kill-ring-save?Emacs kopieren mit Regex
Antwort
von den bereits gegebenen Kommentare inspiriert (die Charles Antwort nicht, wie ich es möchte, nicht funktioniert), habe ich eine neue Funktion zum isearch/isearch-regexp Modus Karte, die nur die passende String setzt in den Kill-Ring (während vom aktuellen Punkt tötet Charles Vorschlag zu Ende Reihe von passenden):
(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)
Das schöne an der isearch/isearch-regexp Ansatz (die Sie mit C-s
und C-M-s
bzw. aktivieren können) ist, dass Sie können sehen, dass Ihre Suchzeichenfolge wächst und Sie können kopieren es mit M-w
, sobald Sie zufrieden sind (und gehen Sie zurück, wo Sie vorher mit C-u C-Space
waren).
Dies funktioniert für mich mit Emacs 23.1. Ich weiß nicht, ob es in allen Situationen funktioniert. Wie auch immer ich hoffe, Sie finden es nützlich :)
UPDATE: durch die emacswiki ich dabei über KillISearchMatch gestolpert, die mehr oder weniger die gleichen schlägt (plus einige weitere Tipps ...).
Cheers, Daniel
Ich bin mir nicht sicher, ob es bereits eine solche Funktion ist, aber was Sie es mit einer Tastatur Makro tun können:
- Starten Sie ein kbd Makroaufnahme:
C-x (
- Suchen Sie Ihren regexp mit
search-forward-regexp
- Mit den verschiedenen Emacs-Navigationsbefehlen, z. B. zum Anfang des Spiels (der Text, den Sie töten möchten), gehen Mark
search
oderbackward-word
usw. - :
C-spc
- Gehen Sie zum Ende Ihrer Spiel
- den Text töten:
C-w
Sie können dann benennen Sie die Tastatur-Makros mit M-x name-last-kbd-macro
, so dass Sie das ausführen kann Makro mit einem Namen anstatt mit C-x e
. Wenn Sie das Makro für zukünftige Sitzungen speichern möchten, können Sie .emacs
öffnen und das Makro mit M-x insert-kbd-macro
in den Puffer einfügen. Danach können Sie einen Schlüssel an das Makro binden, genauso wie Sie Schlüssel an normale Emacs-Funktionen binden, z. (global-set-key "\C-c m" 'funky-macro-macro)
.
Isearch+ tut dies bereits. Es legt optional die Region um das Suchziel fest. Sie können jederzeit während Isearch C-SPC verwenden, um dies umzuschalten.
- 1. Regex Ersatz mit Emacs
- 2. In Emacs kopieren Lisp
- 3. emacs regex hilfe
- 4. Emacs - Kopieren/Einfügen Fehler auf OSX
- 5. Emacs-Stil Regex in Info-Reader?
- 6. Emacs regexp Gruppen in Regex-Ersatz
- 7. .gitignore Regex für Emacs temporäre Dateien
- 8. Emacs Terminal-Modus: wie man effizient kopieren und einfügen
- 9. Emacs kopieren Region/Zeile und Kommentar zur gleichen Zeit
- 10. Emacs Kopieren Kill-Ring in System-Zwischenablage im Nowindow-Modus
- 11. Emacs Suche nach exakten Regex-Übereinstimmung anstelle von Teil
- 12. Emacs dired - mit vordefinierten Variablen
- 13. Ersetzen Sie doppelte Backslash mit einzelnen Backslash in Emacs
- 14. Emacs: Problem mit der Tag-Datei?
- 15. Emacs mit Tramp-Modus
- 16. Emacs entspricht Vim's yy10p?
- 17. Ersetzen Regex mit neuem regex
- 18. mit PHP ersetzen regex mit regex
- 19. Emacs: GUI mit emacs --daemon lädt Schriften nicht korrekt
- 20. Dired kopieren asynchron
- 21. Emacs benutzerdefinierte Shell-Befehle
- 22. share emacs configuration zwischen emacs 23 und emacs 24
- 23. Rohr weniger Emacs
- 24. Kopieren-Einfügen mit Javascript
- 25. Verzeichnis mit Qt kopieren
- 26. kopieren Algorithmus mit ifstream
- 27. Kopieren Einfügen mit Javascript
- 28. Kopieren Konstruktor mit Zeigern
- 29. Epylint in Emacs mit virtualenv
- 30. Verwenden von Git mit Emacs
Danke, es ist genau das, was ich wollte, aber konnte nicht machen, seit ich bei LISP lutsche. –