Bilgi kaynağı: 1
Emacs pro kullanıcıları için:
- Dir dizinindeki dosyaları listelemek için dired çağrısını yapın veya tüm alt dizinlere ihtiyacınız varsa find-dired çağırın.
- İstediğiniz dosyaları işaretleyin. 【% M】 yazarak normal ifade ile işaretleyebilirsiniz.
- Dired-do-query-replace-regexp'yi çağırmak için Q yazın.
- Bulgu ifadenizi yazın ve dizeyi değiştirin. El ☛ ortak elisp normal ifade〕
- Her bir olay için, değiştirmek için y, atlamak için n yazın. Tüm işlemi iptal etmek için 【Ctrl + g】 yazın.
- Tür! geçerli dosyadaki tüm tekrarlamaları sormadan değiştirmek için N, geçerli dosyanın geri kalanı için olası tüm değiştirmeleri atlamak için. (N yalnızca emacs 23'tür)
- Değiştirmeyi daha fazla sormadan tüm dosyalarda yapmak için Y yazın (yalnızca Emacs 23)
- Tüm açık dosyaları listelemek için ibuffer'ı arayın. Kaydedilmemiş tüm dosyaları işaretlemek için 【* u】 yazın, işaretli tüm dosyaları kaydetmek için S yazın, tümünü kapatmak için D yazın.
Emacs Yeni Başlayanlar için Adım Adım Kılavuz
Hedef Dosyaları Seçin
Komut satırı arabirim istemine "emacs" yazarak emacs'i başlatın. (Veya bir Grafik Kullanıcı Arayüzü ortamındaysanız Emacs simgesine çift tıklayın)
Bir Dizindeki Dosyaları Seçme
Öncelikle, yerine koymak istediğiniz dosyaları seçmeniz gerekir. Grafik menüsünü kullanın 〖Dosya ▸ Dizin Aç〗. Emacs sizden bir dizin yolu isteyecektir. Dizin yolunu yazın ve ardından Enter tuşuna basın.
Şimdi, dosyaların listesini göstereceksiniz ve şimdi normal ifade bul / değiştir işlevinin çalışmasını istediğiniz dosyaları işaretlemeniz gerekiyor. İmleci istediğiniz dosyaya taşıyarak bir dosyayı işaretlersiniz, sonra m tuşuna basın. U tuşuna basarak işareti kaldırın. (Alt dizinleri listelemek için imlecinizi dizine taşıyın ve i tuşuna basın. Alt dizinin içeriği en altta listelenir.) Tüm dosyaları normal ifadeyle işaretlemek için 【% m】 yazın ve ardından normal ifade deseninizi yazın. Örneğin, tüm HTML dosyalarını işaretlemek istiyorsanız, 【% m】 ve ardından .html $ yazın. (İşaret komutlarının bir listesini “Mark” grafik menüsünde bulabilirsiniz (bu menü yönlendirme modunda olduğunuzda görünür).)
Bir Dizindeki Dosyaları ve Tüm Alt Dizinlerini Seçme
Yüzlerce alt dizin de dahil olmak üzere bir dizinin içindeki dosyaları bulmak / değiştirmek istiyorsanız, işte tüm bu dosyaları seçmek için bir yöntem.
Find-dired'i arayın. (【Alt + x】 tuşlarına basarak bir komutu çağırırsınız) Ardından, bir dizin adı yazın, ⁖ / Kullanıcılar / mary / dosyalarım
Not: unix grafik olmayan bir metin terminalinde emac kullanıyorsanız ve 【Alt + x】 çalışmazsa, eşdeğer tuş vuruşu 【Esc x】 olur.
Emacs sizden “Run find (args ile):” komutunu soracaktır. Değiştirme işlemini tüm HTML dosyalarında yapmanız gerekiyorsa, -name "* html" yazın. Ne tür bir dosya ile ilgilenmiyorsanız, sadece bu dizin altındaki tüm dosyalar için “-type f” verin.
Şimdi dosyaları yukarıda açıklandığı gibi işaretleyin.
Etkileşimli Bul / Değiştir
Şimdi, etkileşimli bulma yerine geçmeye hazırsınız. Basitlik açısından, "hızlı" kelimesini "süper" ile değiştirmek istediğinizi varsayalım. Şimdi dired-do-query-replace-regexp'yi çağırın. Sizden regex dizesini ve yeni dizeyi girmeniz istenir. “Quick” yazın, girin ve ardından “super” yazın.
Şimdi, emacs kalıbınızı kullanacak ve dosyaları kontrol edecek ve bir eşleşme gerçekleştiğinde durup size gösterecektir. Bu olduğunda, emacs sizi uyarır ve değişikliği yapma veya değişikliği atlama seçeneğiniz vardır. Değişikliği yapmak için y yazın. Atlamak için n yazın. Emacs'ın devam etmesini ve geçerli dosyada bu tür değişiklikleri yapmasını istiyorsanız! Yazın.
Yaptığınız değişiklikleri kaydetmeden tüm işlemi iptal etmek istiyorsanız, 【Ctrl + g】 yazın, ardından 〖Dosya ▸ Emacs'dan Çık〗 menüsünü kullanarak emacs'ten çıkın.
Değiştirilen Dosyaları Kaydetme
Şimdi, yukarıdaki sorundan geçtikten sonra, yapmanız gereken bir adım daha var ve bu, değiştirilen dosyaları kaydediyor.
Emacs sürüm 22 veya daha yenisini kullanıyorsanız, arabellek listesi moduna geçmek için ibuffer'ı arayın, ardından kaydedilmemiş tüm dosyaları işaretlemek için 【* u】 yazın, ardından hepsini kaydetmek için S yazın. (bu vardiyalar)
Bir emacs sürüm 21 kullanıyorsanız, bunu yapabilirsiniz: liste arabelleklerini çağırın, ardından imleci kaydetmek istediğiniz dosyaya taşıyın ve s yazın. Daha sonra kaydetme işlemi için dosyayı işaretler. İşaretini kaldırmak için u yazın. İşiniz bittiğinde, kaydetmek üzere işaretlenmiş tüm dosyaların kaydedilmesini yürütmek için x yazın. (emac'larda, açılan dosyaya “tampon” denir. Orada başka şeyleri dikkate almayın.)
Yukarıdaki seçeneklere alternatif olarak, save-some-buffers 【Ctrl + xs 】'yi de çağırabilirsiniz. Ardından emac'lar kaydedilmemiş her dosyayı görüntüler ve kaydedilmesini isteyip istemediğinizi sorar.
Not: emacs'ın normal ifadesi Perl veya Python'larla aynı değil, benzerdir. Özet ve yaygın kalıplar için bkz. Emacs Regex.