vim을 사용하여 큰 파일을 효과적으로 열 수 있습니까?


17

언젠가 몇 GB 로그 파일을 열어야하는데, 이제 적절한 부분을 얻기 위해 tail을 사용해야하지만 매우 지루합니다.

vim을 사용하여 직접 열 수 있습니까? 현재 vim은 큰 파일을 열 때 많은 메모리를 차지합니다 ... 왜 필요한지 궁금하십니까? 어떤 옵션이 있으면 메모리가로드되지 않을 수 있습니까?

답변:


13

파일을보고 싶다면 less를 사용하십시오 .

파일의 특정 부분을 잘라 내야하는 경우 다음을 수행하십시오 ( 미만 ).

  1. 관심있는 첫 페이지로 이동

  2. 키를 누르면 다음 ma같은 의미가 있습니다. 표시 위치 a .

  3. 관심있는 파일의 마지막 위치로 이동

  4. |(파이프)를 누르고 a-이것은 의미 : 여기 사이의 모든 것을 파이프하고 명령에 위치 a

  5. 데이터를 보내려는 명령을 입력하십시오. 이 데이터를 편집기 버퍼에 복사하려면 vim -명령으로 사용 하십시오 (파일 이름으로 빼기 기호는 편집 할 파일을 stdin에서 읽습니다 ).

특정 위치에서 파일 끝까지 모든 데이터가 필요하다는 것을 알고 있다면 다음을 수행 할 수도 있습니다.

  1. 관심있는 첫 페이지로 이동

  2. |(파이프)를 누르면 $-이것은 파일의 여기와 끝 사이의 모든 것을 명령으로 파이프 합니다.

  3. 데이터를 보내려는 명령을 입력하십시오 (예 : cat >/tmp/myfile또는 vim -).


1
나는 less이것을 할 수 있다는 것을 몰랐다 . 감사합니다 :)
icedwater

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)이 프로그램을 사용하여 크기가 몇 GB 이상인 경우 여전히 문제가 될 수 있으므로 여기에서 "Ctrl-C"팁을 따르는 것이 좋습니다. stackoverflow.com/a/19795855/1858225
Kyle Strand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.