Birden çok gigabaytlık metin dosyalarını, belki de belleğe aynı anda yalnızca küçük bölümleri yükleyerek düzenleyebilen düzenleyiciler var mı? Vim başa çıkabilecek gibi görünmüyor = (
Birden çok gigabaytlık metin dosyalarını, belki de belleğe aynı anda yalnızca küçük bölümleri yükleyerek düzenleyebilen düzenleyiciler var mı? Vim başa çıkabilecek gibi görünmüyor = (
Yanıtlar:
Eğer * nix üzerinde (ve nadiren) sadece dosyanın parçalarını (ve değiştirmek zorunda varsayarak) varsa, (kullanarak dosyaları bölmek olabilir split
, tek tek düzenlemek onları (kullanarak komutu) awk
, sed
ya da benzer bir şey) ve sonra bunları bağlamak yapılır.
cat file2 file3 >> file1
Ctrl-C dosya yüklemeyi durdurur. Dosya yeterince küçükse, tüm içeriği yüklediğiniz ve herhangi bir yükleme sonrası adımını sonlandırdığınız için şanslı olabilirsiniz. Bu ipucunu kullanırken tüm dosyanın yüklendiğini doğrulayın.
Vim büyük dosyaları oldukça iyi idare edebilir. Az önce 3,4 GB'lık bir dosyayı düzenledim, satırları sildim vb. Unutulmaması gereken üç şey:
:115355
Satıra git: Yazmak sizi doğrudan 115355 numaralı satıra götürecektir; bu, bu büyük dosyalarda çok daha hızlıdır. Vim, her satır ara belleğini yüklediğinde taramaya baştan başlıyor gibi görünüyor ve dosyanın sonuna doğru taramak için Ctrl-F tuşlarını basılı tutmak, gerçekten yavaşlıyor gibi görünüyor.Not - Ctrl-C tuşlarına bastığınız için Vim örneğiniz salt okunur durumdaysa, Vim tüm dosyayı arabelleğe yüklememiş olabilir. Böyle bir durumda, dosyayı kaydetmek, dosyanın tamamını değil, yalnızca arabelleğindekini kaydeder . G
Dosyanızdaki tüm satırların orada olduğundan emin olmak için hızlı bir şekilde sonuna atlamak için kontrol edebilirsiniz.
Tıkanmasına neden olan eklentiler olabilir. (sözdizimi vurgulama, kıvrımlar vb.)
Eklenti olmadan vim çalıştırabilirsiniz.
vim -u "NONE" hugefile.log
Minimalist ama size en azından alıştığınız vi hareketlerini verecektir.
syntax off
başka bir bariz olanıdır. Kurulumunuzu azaltın ve ihtiyacınız olanı sağlayın. Neler yapabileceğini ve bir görevi başka yollarla gerçekleştirmeniz gerekip gerekmediğini öğreneceksiniz.
Bölünmüş + vim çözümüyle @Al pachio tarafından verilen yanıtta küçük bir gelişme, dosyaları bir glob ile okuyabilir, dosya yığınlarını etkili bir şekilde tampon olarak kullanabilirsiniz.
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
Büyük dosyalar yüklerken hız nedeniyle belirli vim özelliklerini devre dışı bırakan bu VIM eklentisine göz atmak isteyebilirsiniz .
Bunu, bir SQL dökümünde küçük bir değişiklik yapmam gerektiğinde, çoğunlukla 1 GB civarındaki dosyalarla yapmaya çalıştım. Windows kullanıyorum, bu da onu büyük bir acı haline getiriyor. Cidden zor.
Açıkça sorulan soru "neden buna ihtiyacın var?" Bunu bir kereden fazla denemek zorunda olduğunuz deneyimden size söyleyebilirim, muhtemelen gerçekten başka bir yol bulmaya çalışmak istersiniz.
Peki bunu nasıl yapacaksınız? Bunu yapmamın birkaç yolu var. Bazen dosyayı açmak için vim veya nano alabilirim ve bunları kullanabilirim. Bu gerçekten zor bir acı, ama işe yarıyor.
Bu işe yaramadığında (sizin durumunuzda olduğu gibi) yalnızca birkaç seçeneğiniz vardır. İhtiyacınız olan değişiklikleri yapmak için küçük bir program yazabilirsiniz (örneğin, ara ve değiştirir). Bunu yapabilecek bir komut satırı programı kullanabilirsiniz (belki sed / awk / grep / vb. İle yapılabilir?)
Bunlar işe yaramazsa, dosyayı her zaman parçalara bölebilirsiniz ( bölme gibi bir şey bariz bir seçimdir, ancak istediğiniz parçayı elde etmek için baş / kuyruk kullanabilirsiniz) ve ardından ihtiyaç duyan parçaları düzenleyebilirsiniz. ve daha sonra yeniden birleştirin.
Yine de güven bana, başka bir yol bulmaya çalış.
Charles Campbell'ın LargeFile eklentisiyle Win7 x64 üzerinde vim 7.3.3'ü çoklu gigabaytlık düz metin dosyalarını işlemek için kullanıyorum. Gerçekten iyi çalışıyor.
Umarım doğru gelirsin.
Vay canına, bir veya iki GB ile bile vim'i asla boğmayı başaramadı. UltraEdit (Windows'ta) ve BBEdit'in (Mac'lerde) daha büyük dosyalar için daha da uygun olduğunu duydum, ancak kişisel deneyimim yok.
Geçmişte http://csved.sjfrancke.nl/ bu araçla 3 giglik bir dosya açtım
Şahsen, UltraEdit'i seviyorum . İşte büyük dosyalardaki küçük konuşmaları .