좋은 성능으로 대용량 파일을 열려면 어떻게해야합니까?


26

몇 기가 바이트 크기의 서버 로그 파일이 있습니다 (Ubuntu에서). 파일을 열려고하면 파일이 Vim에로드되는 동안 터미널이 1 분 정도 잠 깁니다. 요청시 파일을로드하도록 Vim을 설정하거나 다른 방법으로이 시간을 줄일 수있는 방법이 있습니까?


4
왜 사용하지 less않습니까?
Bernhard

1
어떤 식 으로든 파일을 조작하려고합니까, 아니면 그냥 보시겠습니까?
200_success

1
파일을 편집하고 싶습니다.
peter-b


아마도 나는 사이트에서 영원히 금지 될 것이지만 말해야합니다. 거대한 파일로 작업 할 때 Emacs는 작업을위한 도구입니다. :-)
toro2k

답변:


24

먼저 플러그인이나 vimrc없이 vim을로드하십시오 :

vim -u NONE gargantuan.txt

이것이 훨씬 빠르면 구문 강조, 접기, 플러그인 또는 대부분의 시간이 걸리는 구문이있을 수 있습니다. 범인을 찾을 때까지 vimrc에서 항목을 끄고 플러그인을 비활성화하십시오.

또한에 있는지 확인 set ft= syn=하고 syntax off.

그래도 문제가 해결되지 않으면 문제를 일으키는 매우 긴 이있을 수 있습니다. 시도 set nowrap줄 바꿈을 끕니다.


vim -U NONE -N gargantuan.txt같은 일을 할 것입니다 실행하는 동안 정력은에 nocompatible있는 대신 "VI"이전과 호환되도록 노력하는 모드 "VI 개선"에서 실행
ecerulm

15

빔은 작업에 대한 잘못된 도구입니다 : 당신이 좋아 호출기를 사용한다 moreless.

편집기 사용을 고집하는 경우 Vim 위키에서 다음 예제를 적용 해보십시오 .

augroup LargeFile
        let g:large_file = 10485760 " 10MB

        " Set options:
        "   eventignore+=FileType (no syntax highlighting etc
        "   assumes FileType always on)
        "   noswapfile (save copy of file)
        "   bufhidden=unload (save memory when other file is viewed)
        "   buftype=nowritefile (is read-only)
        "   undolevels=-1 (no undo possible)
        au BufReadPre *
                \ let f=expand("<afile>") |
                \ if getfsize(f) > g:large_file |
                        \ set eventignore+=FileType |
                        \ setlocal noswapfile bufhidden=unload buftype=nowrite undolevels=-1 |
                \ else |
                        \ set eventignore-=FileType |
                \ endif
augroup END

lessmore또한 내 파일을 변경?
Martin Tournoij

3
물론 그들은 할 수 없습니다. 로그는 편집 할 수 없습니다.
romainl

5
sed 는 이러한 목적으로 개발되었습니다. 대체로 표현한 변경 사항을 파악한 다음 실행 sed하여 변경합니다. 또한 스트림 (즉, 제작되고 있기 때문에 끝나지 않은 파일 내용)에서도 작동합니다.
reinierpost

나는 별명했다 less, more그리고 manvimpager. github.com/rkitover/vimpager
Alex Kroll

5

LargeFile.vim 플러그인은 대용량 파일을보다 빠르게 편집 할 수 있도록 설계되었습니다. http://www.drchip.org/astronaut/vim/index.html#LARGEFILE을 참조 하십시오 .

페이지에서 :

이벤트 끄기, 실행 취소, 구문 강조 등의 비용으로 대용량 파일을 훨씬 빠르게 편집 할 수 있습니다 (기본값 : 100MB +는 "대형"). 순위를 지정할 수있는 vim.sf.net에서도 이용할 수 있습니다.

매뉴얼에 따르면 플러그인을 설치하면 작동합니다. g:LargeFile정수를 MB 로 변경하여 컷오프를 설정할 수 있으며 기본값은 20MB입니다 (100이라는 프로젝트 설명과 달리).

또한 플러그인 명령을 제공합니다 :UnLarge, :Large그리고 :Large!각각 현재로드 된 파일 (작은 파일) 비활성화, 다시 활성화, 또는 힘을 수 있습니다.


2

구문 강조 표시를 해제하면 도움이 될 수 있다고 들었습니다.

:syntax off

모든 종류의 폴딩이 가능
해지면

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.