100MB의 MySQL 데이터베이스 백업 파일이 있는데 16G RAM이 있는 Linux 시스템의 Vim에서 파일을 여는 데 문제가 있습니다.
Vim이 멈춥니다(적어도 사용할 수 없음). 이것은 내가 이해하지 못하는 것입니다. 16GB RAM이 있는데 왜 편집기에서 100MB 파일을 로드할 수 없나요?
빔 때문인가요? 모든 메모리 관리는 운영 체제에서 처리한다고 생각합니다.
답변1
Vim은 가끔 비정상적으로 긴 줄이 있는 파일을 처리하는 데 문제가 있습니다. 이는 텍스트 편집기이므로 행 길이가 일반적으로 최대 수백 문자에 달하는 텍스트 파일용으로 설계되었습니다.
데이터베이스 파일에는 개행 문자가 많지 않을 수 있으므로 100MB 길이의 줄이 될 수 있습니다. Vim은 이것이 마음에 들지 않을 것이며, 작동하더라도 파일을 로드하는 데 꽤 오랜 시간이 걸릴 수 있습니다.
내가 열어봤어텍스트100MB보다 큰 파일을 처리하려면 Vim을 사용하세요. 파일을 메모리에 한꺼번에 로드할 필요도 없습니다(Vim은 필요에 따라 변경 사항을 디스크로 교환할 수 있기 때문입니다).
답변2
내 경험상 Vim은 질식하지 않습니다.대용량 파일,하지만 때긴 대기열. 이 명령을 사용하여mysqldump
사용짧은 줄희생에더 큰 파일:
$ mysqldump --complete-insert -u -p
.vimrc
또한 다음을 사용하여 Vim을 열고 파일을 구문 분석하거나 플러그인을 로드 하지 않도록 요청할 수 있습니다 .
$ vim -u NONE output.sql
이런 방식으로 Vim을 로드하면 메모리 사용량이 줄어들고 많은 플러그인처럼 Vim이 전체 파일을 구문 분석할 필요가 없습니다.
답변3
".vimrc 및 플러그인 없이 VIM 로드(VIM 정리)(예: 대용량 파일의 경우)
gvim -u NONE -U NONE -N largefile.sql
답변4
Vim은 파일을 있는 그대로 메모리에 로드하지 않습니다. 내부 구조(라인, 단어 등)로 변환하고 내부 스크립팅 언어를 사용하여 구문 강조 등을 수행합니다. 이 모든 작업은 메모리(문자당 1바이트 이상)와 CPU 시간을 소비합니다.