Vi'yi büyük dosyalarda kullanırsam ne olur?


16

Bize söylenmememize rağmen, bir meslektaşım vi'yi büyük bir metin dosyasını (server.log 3,5 GB) görüntülemek için kullandı. Bu, / var / tmp dosyasını doldurdu ve sunucuda bazı sorunlara neden oldu.

Buna ne sebep oldu? Büyük dosyalar için neden vi kullanmamalıyız?


3
vi(veya vimbu konuda) büyük dosyalarda çok yavaştır ve çok fazla satır sonu yoksa kullanılamaz olabilir. Ayrıca, dosyanın belleğe sığması gerekir. lessBüyük dosyalar için kullanın , günlük dosyalarını okumak / izlemek için çok daha hızlı ve genellikle yeterlidir.
Marco

@Marco Neden cevap olarak vermiyorsunuz?
Bernhard

1
çünkü bu sorunun cevabı değil, bir yorumdur, soru şudur: "Buna ne sebep oldu? Neden büyük dosyalar için vi kullanmamalıyız?"
Kiwy

cevabımla yoruma bak.
rɑːdʒɑ

Yanıtlar:


7

Vi düzenleme arabelleğinin varsayılan dizini (/ var / tmp), birlikte çalıştığınız dosyanın boyutunun kabaca iki katına eşit alana ihtiyaç duyar, çünkü vi, arabellek işleme için fazladan satırlar kullanır.

/ Var / tmp dizininde düzenleme arabelleği için yeterli alan yoksa (örn. Büyük bir dosyayla çalışıyorsanız veya sistemde alan azalıyorsa)

bazı zamanlarda, bunun gibi aşağıdaki hata iletisini alırsınız

Not enough space in /var/tmp.

Bunu nasıl düzeltebileceğinizi buradan okuyabilirsiniz: http://kb.iu.edu/data/akqv.html


"vi düzenleme arabelleği, üzerinde çalıştığınız dosyanın kabaca iki katına eşit alana ihtiyaç duyar" Kaynak?
atripathi

1
uzun zaman önce kb.iu.edu/data/akqv.html'den okudum . bu yüzden sana verdim
rɑːdʒɑ

20

Vim büyük dosyalar için tasarlanmamıştır. Kullanıcı deneyimini büyük ölçüde yavaşlatan bazı özelliklere sahiptir. Örneğin, dosyayı belleğe yükler, bu da temel olarak bellek boyutunuzdan daha küçük dosyaları düzenlemeyi sınırlar. Ayrıca, sözdizimi vurgulama, takas dosyası ve geri alma gibi özellikler büyük dosyalar için çok verimsizdir ve daha da yavaşlar. Başka bir sorun, vimçok uzun satırlar beklememesi. Bir dosya az sayıda yeni satır karakteri içeriyorsa vimkullanılamaz hale gelir.

Bununla birlikte, vim-largefile gibi belirli ayarları büyük dosyalarla daha verimli olacak şekilde değiştiren eklentiler var , ancak sonunda birkaç GiB'yi attığınızda vimasla çabuk olmayacak .

Sonuçta vim, büyük dosyalarda kullanmayın . Büyük dosyaları görüntülemek (düzenlemek yerine) kullanmak için tuşunu kullanın less. Bir desen aramak istiyorsanız, bir desen aramaya başlamak için eğik çizgi kullanır:

/<pattern>  # forward search
?<pattern>  # backward search

Çıktıya filtre uygulamak istiyorsanız bir ve işareti kullanın:

&<pattern>

Ardından düğmesini kullanarak sürekli çıkışı başlatın shift-f. İle sürekli çıkış ekranından çıkıp ctrl-cfiltre modelinizi hassaslaştırabilir veya iptal edebilir ya da bir arama başlatabilirsiniz.

Büyük dosyaları düzenlemek için gibi araçlar kullanın sed, bunlar verimli ve bu amaçla tasarlanmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.