Czy mogę używać vima do skutecznego otwierania dużego pliku?

17

czasami muszę otworzyć plik dziennika o wielkości kilku GB, teraz muszę użyć ogona, aby uzyskać odpowiednią część, ale jest to bardzo żmudne.

Czy mogę po prostu użyć vima, aby otworzyć go bezpośrednio? Obecnie vim zajmie dużo pamięci po otwarciu dużego pliku ... Zastanawiam się, dlaczego jest on wymagany? Czy istnieje jakaś opcja, która może zapobiec załadowaniu pamięci?

Carfield Yim
źródło

Odpowiedzi:

13

Jeśli chcesz tylko rzucić okiem na plik, użyj mniej .

Jeśli potrzebujesz wyciąć określoną część pliku, zrób to (w mniej ):

  1. Przejdź do 1. strony, którą jesteś zainteresowany

  2. Naciśnij klawisze mi a- oznacza to: zaznacz pozycję a .

  3. Przejdź do ostatniej pozycji pliku, który Cię interesuje

  4. Naciśnij klawisze |(potok) i a- oznacza to: potokuj wszystko między tutaj i ustaw pozycję a na komendzie

  5. Wpisz polecenie, do którego chcesz wysłać dane. Jeśli chcesz skopiować te dane do bufora edytora, po prostu użyj vim -jako polecenia (znak minus jako nazwa pliku oznacza, że plik do edycji ma być odczytany ze standardowego wejścia ).

Jeśli wiesz, że będziesz potrzebować wszystkich danych od określonej pozycji do końca pliku, możesz to również zrobić:

  1. Przejdź do 1. strony, którą jesteś zainteresowany

  2. Naciśnij klawisze |(potok) i $- oznacza to: potokuj wszystko między tutaj a końcem pliku do polecenia

  3. Wpisz polecenie, do którego chcesz wysłać dane (np. cat >/tmp/myfileLub vim -).

ktf
źródło
1
Nie wiedziałem, że mogę lessto zrobić. Dzięki :)
icedwater
4

Sprawdź to i to .

Zasadniczo masz następujące opcje:

  1. Wypróbuj skrypt Vim Large File . Wyłącza niektóre funkcje poprawiające responsywność Vima podczas edycji dużych plików.
  2. Podziel plik na mniejsze fragmenty, edytuj fragment, na którym Ci zależy, i połącz je ponownie.
Dan Cruz
źródło
3

Tak, Vim może otwierać bardzo duże pliki. Aby jednak zachować pamięć, należy pamiętać o kilku rzeczach:

  • zignoruj ​​typ pliku (bez podświetlania składni itp.), chociaż według wszelkiego prawdopodobieństwa nie będzie miał wysokiego składni plików dziennika, ale dla pewności, aby nie zaczął ich przeglądać
  • noswapfile (zdecydowanie nie chcesz kopii pliku o takim rozmiarze)
  • bufhidden = rozładuj (oszczędzaj pamięć, gdy przeglądany jest inny plik)
  • buftype = nowritefile (tylko do odczytu)
  • undolevels = -1 (nie można cofnąć)

Może jest opcja, którą przegapiłem, ale są one jak dotąd w moim _vimrc.

Wieża
źródło
Zauważ, że (1) istnieje wtyczka ( vim.org/scripts/script.php?script_id=1506 ) do automatycznego włączania kilku z tych opcji automatycznie po otwarciu dużego pliku i (2) nawet w tym programie, otwieranie plików, które są większe niż kilka GB, co może nadal stanowić problem, dlatego polecam postępować zgodnie ze wskazówkami „Ctrl-C” tutaj: stackoverflow.com/a/19795855/1858225
Kyle Strand