Mam plik tekstowy. Czy Emacs może wybrać tekst oparty na regexie i umieścić go w trybie "zabijania", więc mogę go skopiować gdzie indziej? Coś jak regex-kill-ring-save?Kopia Emacsa z regexem
Odpowiedz
zainspirowany już oddanych komentarzy (odpowiedź Charles nie działa jak bym go chciał), dodałem nową funkcję do trybu mapie isearch/isearch-regexp która stawia tylko ciąg pasujący na ring kill (podczas gdy propozycja Charles zabija od aktualnego punktu do końca pasujące String):
(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)
zaletą o iSearch/isearch-regexp podejścia (które można włączyć z C-s
i C-M-s
odpowiednio) jest to, że możesz zobaczyć rosnący ciąg wyszukiwania i możesz go skopiować to z M-w
, gdy tylko będziesz zadowolony (i wróć do miejsca, w którym byłeś wcześniej z C-u C-Space
).
To działa dla mnie z Emacs 23.1. Nie wiem, czy zadziała w każdej sytuacji. W każdym razie mam nadzieję, że okaże się przydatny :)
UPDATE: przechodzi emacswiki potknąłem KillISearchMatch co sugeruje mniej więcej takie same (plus kilka wskazówek ...).
Cheers, Daniel
Nie jestem pewien, czy istnieje już taka funkcja, ale co można zrobić za pomocą makra klawiaturowe:
- rozpocząć nagrywanie makra kbd:
C-x (
- wyszukać swoje regexp z
search-forward-regexp
- Przejdź do początku swojego dopasowania (tekst, który chcesz zabić) za pomocą różnych poleceń nawigacji emacs, np.
search
lubbackward-word
itp - Znak:
C-spc
- Przejście do końca swojego meczu
- Zabij tekst:
C-w
Następnie można nazwać makro klawiatury z M-x name-last-kbd-macro
, dzięki czemu można wykonać makro o nazwie zamiast z C-x e
.
Jeśli chcesz zapisać makro dla przyszłych sesji, możesz otworzyć numer .emacs
i wstawić makro do bufora przy pomocy M-x insert-kbd-macro
. Następnie można powiązać klucz z makrem, tak jak wiążesz klucze z normalnymi funkcjami emacsa, np. (global-set-key "\C-c m" 'funky-macro-macro)
.
Isearch+ robi to już. Opcjonalnie ustawia region wokół celu wyszukiwania. Możesz użyć C-SPC w dowolnym momencie podczas Isearch, aby przełączyć to.
- 1. Filtr Django z regexem
- 2. Wyszukaj klasy div z regexem
- 3. Parsowanie deklaracji VBA Const ... z regexem
- 4. Płytka kopia i głęboka kopia w C
- 5. Rdzeń podobny do routera z dynamicznym regexem w PHP
- 6. Używanie Emacsa z Xcode 4?
- 7. Autouzupełnianie Emacsa
- 8. Otwieranie pliku Kopia w tle, jeśli używana jest bieżąca kopia
- 9. Szybka kopia pliku Delphi
- 10. Vim: Kopia funkcji
- 11. Polimorficzna kopia w Javie
- 12. Głęboka kopia audio CMSampleBuffer
- 13. Webcore NSBeep()! kiedy kopia z uiwebview
- 14. Kopia pliku wtyczki Gradle z wtyczki jar
- 15. android: kopia rekurencyjna z adb push
- 16. rura postgresowa KOPIA w pythonie z psycopg2
- 17. Zwrotna kopia słownika z wyłączeniem określonych kluczy
- 18. Co robi kopia hg?
- 19. Głęboka kopia struktury wykresu
- 20. głęboka kopia zapisu doktrynowego
- 21. Wydajne pamięci kopia
- 22. studio graficzne kopia lokalna
- 23. Płytka kopia hashsetu
- 24. Python słownik kopia metoda
- 25. kopia algorytm back_inserter
- 26. Rodziny czcionek dla Emacsa
- 27. Emacsa minibufora ukończenie
- 28. Dostosowywanie Emacsa GDB
- 29. Globalna konfiguracja kart Emacsa
- 30. Jak wydrukować z Emacsa na Win32?
Dzięki, to jest to, czego chciałem, ale nie mogłem zrobić, ponieważ ssałem LISP-a. –