Meskipun kami diperintahkan untuk tidak melakukannya, seorang kolega saya menggunakan vi untuk melihat file teks besar (server.log 3.5 GB). Ini mengisi / var / tmp dan menyebabkan beberapa masalah di server.
Apa yang menyebabkan ini? Mengapa kita tidak menggunakan vi untuk file besar?
vi
(atauvim
dalam hal ini) sangat lambat pada file besar dan bahkan mungkin tidak dapat digunakan jika tidak ada banyak baris. Selanjutnya, file tersebut harus sesuai dengan memori. Gunakanless
untuk file besar, ini jauh lebih cepat dan sering cukup untuk membaca / menonton file log.Jawaban:
Direktori default (/ var / tmp) untuk buffer pengeditan vi membutuhkan ruang yang kira-kira sama dengan dua kali ukuran file yang Anda gunakan, karena vi menggunakan baris tambahan untuk manipulasi buffer.
Jika direktori / var / tmp tidak memiliki cukup ruang untuk buffer pengeditan (mis. Anda bekerja dengan file besar, atau sistem kehabisan ruang
beberapa kali Anda mungkin, Anda akan menerima pesan kesalahan berikut seperti ini juga
Anda dapat membaca tentang cara memperbaikinya di sini: http://kb.iu.edu/data/akqv.html
sumber
Vim tidak dirancang untuk file besar. Ini memiliki fitur tertentu yang secara drastis memperlambat pengalaman pengguna. Sebagai contoh, ini memuat file ke dalam memori yang pada dasarnya membatasi untuk mengedit file lebih kecil dari ukuran memori Anda. Selain itu, fitur-fitur seperti penyorotan sintaksis, swap file dan undo sangat tidak efisien dengan file besar dan memperlambat bahkan lebih. Masalah lainnya adalah
vim
garis yang diharapkan tidak terlalu panjang. Jika file berisi beberapa karakter baris baruvim
menjadi tidak dapat digunakan.Yang mengatakan, ada plugin seperti vim-largefile yang mengubah pengaturan tertentu menjadi lebih efisien dengan file besar, tetapi pada akhirnya
vim
tidak akan pernah tajam ketika Anda melempar beberapa GiB padanya.Intinya adalah, jangan gunakan
vim
pada file besar. Jika Anda ingin melihat (berbeda dengan mengedit) file besar, gunakanless
. Jika Anda ingin mencari suatu pola, gunakan garis miring untuk memulai pencarian suatu pola:Jika Anda ingin memfilter output, gunakan ampersand:
Kemudian mulai menggunakan output kontinu shift-f. Anda dapat keluar dari tampilan keluaran berkelanjutan dengan ctrl-cdan memperbaiki atau membatalkan pola filter Anda atau memulai pencarian.
Untuk mengedit file besar menggunakan alat seperti
sed
, mereka efisien dan dirancang untuk tujuan ini.sumber