Чи можу я використовувати Vim для ефективного відкриття величезного файлу?


17

колись мені потрібно відкрити файл журналу кількох ГБ, тепер мені потрібно використовувати хвіст, щоб отримати відповідну частину, але це дуже нудно.

Чи можна просто використовувати vim, щоб відкрити його безпосередньо? Наразі vim займе багато пам’яті при відкритті великого файлу… Просто цікаво, чому він потрібен? Якщо є якась опція, що може запобігти завантаженню пам'яті?

Відповіді:


13

Якщо ви просто хочете переглянути файл, використовуйте менше .

Якщо вам потрібно вирізати певну частину файлу, зробіть це (не менше ):

  1. Перейдіть на першу сторінку, яка вас цікавить

  2. Натисніть клавіші mі a- це означає: позначте позицію a .

  3. Перейдіть на останню позицію файла, який вас цікавить

  4. Натисніть клавіші |(труба) і a- це означає: передайте все між цим пунктом і поставте команду a

  5. Введіть команду, до якої потрібно надіслати дані. Якщо ви хочете скопіювати ці дані в буфер редактора, просто використовуйте vim -як команду (знак мінус як ім'я файлу означає, що файл, який потрібно редагувати, слід читати з stdin ).

Якщо ви знаєте, що вам знадобляться всі дані з певної позиції до кінця файлу, ви також можете це зробити:

  1. Перейдіть на першу сторінку, яка вас цікавить

  2. Натисніть клавіші |(труба) і $- це означає: передайте команду все між тут і кінцем файлу

  3. Введіть команду, якій потрібно надсилати дані (наприклад, cat >/tmp/myfileабо vim -).


1
Я не знав, що можу це lessзробити. Дякую :)
крижана вода

4

Перевірте це та це .

В основному, ваші варіанти:

  1. Спробуйте скрипт Vim Large File спробувати. Це вимикає певні функції, щоб покращити чутливість Vim під час редагування великих файлів.
  2. Розбийте файл на менші шматки, відредагуйте фрагмент, який вам важливий, і з'єднайте їх назад разом.

3

Так, Vim може відкривати дуже великі файли. Але, щоб зберегти пам'ять про деякі речі, вам, мабуть, слід пам’ятати, перш ніж це робити:

  • ігноруйте тип файлу (відсутність виділення синтаксису тощо), хоча, швидше за все, у нього не буде синтаксису високого розміщення для файлів журналів, але просто бути впевненим, щоб він не почав проходити через них
  • noswapfile (ви точно не хочете копію файлу такого розміру)
  • bufhidden = вивантажити (зберегти пам'ять під час перегляду іншого файлу)
  • buftype = nowritefile (читається лише)
  • скасовує рівні = -1 (скасування неможливо)

Можливо, є варіант або два, які я пропустив, але це поки що в моєму _vimrc.


Зауважте, що (1) є плагін ( vim.org/scripts/script.php?script_id=1506 ) для автоматичного включення декількох цих параметрів при відкритті великого файлу та (2) навіть за допомогою цієї програми, відкриваючи файли, які розміром більше ніж кілька Гб, все ще може бути проблематичним, тому я рекомендую дотримуватися підказки "Ctrl-C" тут: stackoverflow.com/a/19795855/1858225
Кайл Странд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.