Emacs içindeki tüm arabelleklere nasıl "M-x replace-string" yazarım?Emacs'ta tüm tamponlarda nasıl "M-x replace-string" yazarım?
cevap
Mxibuffer
RETtU
Ama muhtemelen bunu bir yedek yapamaz eğer iptal edecek çünkü, biraz daha bundan daha kısıtlayıcı olmak isteyeceksiniz - Örneğin eşleşen bir dosya adı içeren salt okunur bir yönlendirme arabelleği ile karşılaşır.
Ch modu yardımı okumak ve kolayca ilgilendiğiniz sadece tampon işaretlemek nasıl öğrenmek için ibuffer içindem
Düzenleme:. olmayan bir regexp sürümü ibuffer-do-replace-regexp
kolayca orijinal tanımını değiştirerek yazılabilir:
;; defines ibuffer-do-replace-string
(define-ibuffer-op replace-string (from-str to-str)
"Perform a `replace-string' in marked buffers."
(:interactive
(let* ((from-str (read-from-minibuffer "Replace string: "))
(to-str (read-from-minibuffer (concat "Replace " from-str
" with: "))))
(list from-str to-str))
:opstring "replaced in"
:complex t
:modifier-p :maybe)
(save-window-excursion
(switch-to-buffer buf)
(save-excursion
(goto-char (point-min))
(let ((case-fold-search ibuffer-case-fold-search))
(while (search-forward from-str nil t)
(replace-match to-str nil t))))
t))
, bu tür bunu yapmak istiyorum nasıl bağlıdır.
SearchBuffers için Emacs Wiki'ye bakın. Ilgisi moccur-edit ve icicles olurdu.
Bu bağlamda, Icicles buffer searching'dan bahsetmek için Trey'e teşekkürler. Dired'de ayrıca Q (dired-do-query-replace
) da belirtmeme izin verin. Çok kullanışlı. Ve kolayca bu gibi tuşlarını kullanarak dired dosyaların setleri işaretleyebilirsiniz unutmayın (ve daha vardır):
- % m (
dired-mark-files-regexp
) - adları regexpi maç işareti dosyaları - % g (
dired-mark-files-containing-regexp
) - metni (içerik) bir regexp ile eşleşen dosyaları işaretleme - *. (
dired-mark-extension
) - adları aynı uzantısına sahip işareti dosyaları (örneğin.el
)
standart kütüphane dired-x.el
(ve belki dired-aux.el
) yüklemek için emin olun.
Bunu bir web sitesinde çok uzun zaman önce buldum, üzgünüm kaynağı hatırlamıyorum. Salt okunur bir arabellek bulursanız, duracaktır, bu yüzden dikkatli olun.
Sadece .emacs içinde
(defun query-replace-in-open-buffers (arg1 arg2)
"query-replace in open files"
(interactive "sQuery Replace in open Buffers: \nsquery with: ")
(mapcar
(lambda (x)
(find-file x)
(save-excursion
(beginning-of-buffer)
(query-replace arg1 arg2)))
(delq
nil
(mapcar
(lambda (x)
(buffer-file-name x))
(buffer-list)))))
- 1. C linux'da MX kaydı sorgulama
- 2. Firefox Addon'u nasıl yazarım?
- 3. ASP Dizisini nasıl yazarım?
- 4. Neden s kullanıyoruz: Satır yerine mx: HRule?
- 5. Yinelemeli anonim işlevleri nasıl yazarım?
- 6. İlkel olmayan türleri nasıl yazarım?
- 7. Yasemin'de FileReader testini nasıl yazarım?
- 8. SpecFlow Özelliğinde nasıl yorum yazarım?
- 9. Ruby'nin her_kosunu Clojure'a nasıl yazarım?
- 10. Haskell'de Data.Vector.Unboxed örneğini nasıl yazarım?
- 11. HTML ben mx var bir iframe
- 12. Bul bütün VI tamponlarda/Grep birçok tampon ile
- 13. Route 53 ve GMail - MX yönlendirmesi
- 14. Android'de bir .txt dosyasına nasıl yazarım?
- 15. Atom'a nasıl özel bir komut yazarım?
- 16. VB.NET'te her bir satıra nasıl yorum yazarım?
- 17. Hive desteklemiyor, mevcut. Aşağıdaki sorguyu nasıl yazarım?
- 18. "İmha ..." gibi davranan taktikleri nasıl yazarım?
- 19. Basit bir SSH istemcisini nasıl yazarım?
- 20. Managed C++ uygulamasında nasıl typ (int) yazarım?
- 21. Bir dosyayı diskten silmeden nasıl yazarım?
- 22. Hql sorgusunu cast ile nasıl yazarım?
- 23. TcpListener için kendi async sarıcımı nasıl yazarım?
- 24. Vba'da bir dizeye çift tırnak nasıl yazarım?
- 25. BinaryWriter kullanarak nasıl bir liste yazarım?
- 26. Bir işleve iletilen yineleyicinin türünü nasıl yazarım?
- 27. Alıntıların içine bir metin kutusuna nasıl yazarım?
- 28. Haskell'de sembolün nitelikli ismini nasıl yazarım?
- 29. Çıkışı konsolda aynı yere nasıl yazarım?
- 30. Facebook uygulamalarını Django kullanarak nasıl yazarım?
Teşekkür Bu yerleştirmek, ancak bu yerine-string tamamen eşit görünmüyor. r-s regexp-sözdizimi olarak U gerçekten anlamıyla okur. –
Çok doğru, bir regexp değiştirme işlevi ve yerleşik bir dize varyantı yoktur, bu nedenle ya regex'lerle ilgilenmeniz ya da benzer işlevi tanımlamanız gerekir. Cevaplara bir tane ekleyeceğim. – phils
Ayrıca, 'M-x ibuffer RET t Q', etkileşimli olarak aynı şeyi yapacak ve her bir değiştirme işlemini onaylamanızı sağlayacaktır. –