Bisakah saya menggunakan vim untuk membuka file besar secara efektif?


17

kadang-kadang saya perlu membuka beberapa file log GB, sekarang saya perlu menggunakan tail untuk mendapatkan bagian yang cocok tapi itu sangat membosankan.

Bisakah saya menggunakan vim untuk membukanya secara langsung? Saat ini vim akan menempati banyak memori ketika membuka file besar ... Hanya ingin tahu mengapa itu diperlukan? Jika ada beberapa opsi dapat mencegah memori dimuat?

Jawaban:


13

Jika Anda hanya ingin melihat file, gunakan lebih sedikit .

Jika Anda perlu memotong bagian tertentu dari file, lakukan ini (dalam waktu kurang ):

  1. Buka halaman 1 yang Anda minati

  2. Tekan tombol mdan a- ini berarti: tandai posisi a .

  3. Pergi ke posisi terakhir dari file yang Anda minati

  4. Tekan tombol |(pipa) dan a- ini berarti: pipa semuanya antara sini dan posisikan a ke perintah

  5. Ketikkan perintah yang Anda inginkan untuk mengirim data. Jika Anda ingin menyalin data ini ke dalam buffer editor, cukup gunakan vim -sebagai perintah (tanda minus sebagai nama file berarti file yang akan diedit dibaca dari stdin ).

Jika Anda tahu bahwa Anda akan memerlukan semua data dari posisi tertentu hingga akhir file Anda juga dapat melakukan ini:

  1. Buka halaman 1 yang Anda minati

  2. Tekan tombol |(pipa) dan $- ini berarti: pipa semuanya antara sini dan akhir file ke perintah

  3. Ketikkan perintah yang Anda inginkan untuk mengirim data (misalnya cat >/tmp/myfileatau vim -).


1
Saya tidak tahu lessbisa melakukan ini. Terima kasih :)
icedwater

4

Lihat ini dan ini .

Pada dasarnya, opsi Anda adalah:

  1. Cobalah skrip Vim Large File . Ini menonaktifkan fitur tertentu untuk meningkatkan daya tanggap Vim saat mengedit file besar.
  2. Pecah file menjadi potongan yang lebih kecil, edit potongan yang Anda sayangi dan gabungkan kembali.

3

Ya, Vim dapat membuka file yang sangat besar. Tetapi, untuk menghemat ingatan beberapa hal yang mungkin harus Anda ingat sebelum melakukannya:

  • abaikan filetype (tidak ada penyorotan sintaks dan sebagainya), meskipun kemungkinan besar tidak akan memiliki sintaksis yang tinggi untuk file log sama sekali, tetapi hanya untuk memastikan agar tidak mulai menelusuri mereka
  • noswapfile (Anda pasti tidak ingin salinan file sebesar itu)
  • bufhidden = bongkar (hemat memori saat file lain dilihat)
  • buftype = nowritefile (hanya baca)
  • undolevels = -1 (tidak dapat dibatalkan)

Mungkin ada satu atau dua opsi yang saya lewatkan, tetapi ini sejauh ini di _vimrc saya.


Perhatikan bahwa (1) ada plugin ( vim.org/scripts/script.php?script_id=1506 ) untuk mengaktifkan beberapa opsi ini secara otomatis ketika file besar dibuka, dan (2) bahkan dengan program ini, membuka file yang lebih dari beberapa GB dalam ukuran masih bisa bermasalah, jadi saya sarankan mengikuti tip "Ctrl-C" di sini: stackoverflow.com/a/19795855/1858225
Kyle Strand
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.