Ho un file di testo. Emacs può selezionare il testo in base alla regex e metterlo in kill-ring, così posso copiarlo da qualche altra parte? Qualcosa come regex-kill-ring-save?Emacs copia con regex
risposta
ispirato ai commenti già dato (la risposta Charles non funziona come vorrei esso), ho aggiunto una nuova funzione alla mappa modalità isearch/isearch-regexp che mette solo la stringa corrispondente sul ring kill (considerando che la proposta Charles uccide dal punto corrente al fine di abbinare stringa):
(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)
la cosa bella del/approccio isearch-regexp isearch (che è possibile attivare con rispettivamente C-s
e C-M-s
) è che puoi vedere crescere la stringa di ricerca e puoi copiare con M-w
non appena si è soddisfatti (e tornare a dove sei stato prima con C-u C-Space
).
Questo funziona per me con Emacs 23.1. Non so se funzionerà in tutte le situazioni. Comunque spero vi sia utile :)
UPDATE: passare attraverso l'emacswiki mi sono imbattuto nel corso KillISearchMatch che suggerisce più o meno gli stessi (più alcuni ulteriori suggerimenti ...).
Cheers, Daniel
non sono sicuro se c'è una tale funzione già, ma cosa si può fare con una macro della tastiera:
- Avviare la registrazione di una macro kbd:
C-x (
- Ricerca per la vostra espressione regolare con
search-forward-regexp
- Spostarsi all'inizio della partita (il testo che si desidera eliminare) con i vari comandi di navigazione di emacs, ad es.
search
obackward-word
ecc - Mark:
C-spc
- Spostarsi alla fine della vostra partita
- uccidere il testo:
C-w
È quindi possibile assegnare un nome alla macro di tastiera con M-x name-last-kbd-macro
in modo da poter eseguire la macro con un nome piuttosto che con C-x e
.
Se si desidera salvare la macro per sessioni future, è possibile aprire .emacs
e inserire la macro nel buffer con M-x insert-kbd-macro
. Dopo di quanto è possibile associare un tasto alla macro proprio come si associano i tasti alle normali funzioni emacs, ad es. (global-set-key "\C-c m" 'funky-macro-macro)
.
Isearch+ fa questo già. Opzionalmente imposta la regione attorno al target di ricerca. Puoi utilizzare C-SPC in qualsiasi momento durante Isearch per passare da questo.
- 1. Sostituzione Regex con Emacs
- 2. Integrare Emacs copia/incolla con Sistema copia/incolla
- 3. Emacs copia le righe corrispondenti
- 4. emacs: è possibile abbinare stringhe con parenti bilanciati con emacs regex?
- 5. Emacs: copia del testo (senza ucciderlo)
- 6. Emacs copia regione/linea e commento allo stesso tempo
- 7. Emacs: problema con il file dei tag?
- 8. Python 3 con Emacs
- 9. Copia costruttore con puntatori
- 10. Python: sostituire con regex
- 11. Funzione SSRS con regex
- 12. Filtro Django con regex
- 13. Emacs: GUI con emacs --daemon non carica correttamente i font
- 14. Terminale seriale in emacs
- 15. build emacs con supporto X
- 16. Utilizzo di git con emacs
- 17. Regex Javascript: come mettere in grassetto parole specifiche con regex?
- 18. copy_backward o copia con reverse_iterators?
- 19. Numpy assegnazione array con copia
- 20. Copia un'intera directory con phing
- 21. Visualizzazione elenco con copia-incolla
- 22. algoritmo di copia con back_inserter
- 23. Copia costruttore con puntatore intelligente
- 24. Regex Sostituisci funzione con Razor
- 25. C: libreria Regex con MinGW
- 26. Corrispondenza testo arabo con regex
- 27. Regex con i caratteri latini
- 28. Regex con .find(), nessun risultato
- 29. regex: stringa con parti opzionali
- 30. Regex con sostituisco in Golang
Grazie, è proprio quello che volevo, ma non riuscivo a fare da quando succhio a LISP. –