Tại sao Vim có thể mở các tệp lớn nhanh hơn một số trình soạn thảo văn bản khác?


10

Khi mở file log lớn (tốt, không lớn, nhưng 80MB vẫn là rất nhiều văn bản!), Tôi đã luôn luôn sử dụng Vim kể từ khi nó tải chúng gần như ngay lập tức. Các trình soạn thảo văn bản khác như Notepad, Notepad ++, v.v sẽ mất> 10 giây để xử lý và tải tệp. Lý do cho điều này là gì? Điều gì khiến Vim nhanh đến vậy?


8
Bật tính năng tô sáng cú pháp và ngạc nhiên khi vim chậm có thể trở thành
Marco

11
Đối với các cử tri thân thiết: Tôi cho rằng câu hỏi này mang tính xây dựng - như câu trả lời chỉ ra, có những kỹ thuật mà Vim sử dụng giúp nó hiệu quả hơn với các tệp lớn hơn một số trình soạn thảo khác. Đó là một câu trả lời cụ thể, có thể được hỗ trợ bởi các sự kiện / tài liệu tham khảo. Và tôi không chắc tại sao mọi người có thể xem xét địa phương hóa này; có một sự khác biệt rõ ràng trong cách các biên tập viên xử lý các tệp ảnh hưởng đến nhiều hơn một khu vực địa lý nhỏ, một thời điểm cụ thể hoặc một tình huống cực kỳ hẹp .
Bob

1
@Bob - Tôi không thấy câu trả lời cho câu hỏi này giải quyết bất kỳ vấn đề nào.
Nifle

Câu trả lời:


16

Có vô số thủ thuật mà các biên tập viên có thể sử dụng để tối ưu hóa việc xử lý các tệp lớn.

Một là chỉ làm việc với những gì họ cần. Điều đó có nghĩa là không cố phân tích toàn bộ tệp cho các mục như đếm dòng, đo độ rộng, gói từ, tô sáng cú pháp, xác thực XML, kết xuất HTML, Hoàn tác, v.v. Có Plugin LargeFile có sẵn cho Vim sẽ vô hiệu hóa một số tính năng của Vim khi tệp "lớn" (như được xác định bởi người dùng) được mở. Các tải nhanh hơn các tập tin lớn trang trên wiki Vim đề cập đến một số tính năng người khuyết tật: bỏ qua filetype (ví nổi bật cú pháp / phân tích cú pháp), vô hiệu hóa hoàn tác, chuyển sang chế độ chỉ đọc. Cũng có những thay đổi khác, nhưng dường như chúng được nhắm mục tiêu bảo tồn bộ nhớ hơn là tốc độ.

Một cái khác là ánh xạ bộ nhớ. Thay vì đọc toàn bộ tệp vào bộ nhớ, hãy báo cho HĐH bên dưới ánh xạ chế độ xem tệp trực tiếp vào không gian bộ nhớ quy trình. Tôi không chắc chắn nếu Vim đặc biệt làm điều này, nhưng các biên tập viên khác có thể và làm.

Đó có lẽ là 2 lớn nhất, nhưng chắc chắn có nhiều hơn.


Bạn có tài liệu tham khảo cho vim bằng cách sử dụng bất kỳ kỹ thuật nào trong số này không?
slhck

Tôi không thể nhận xét về ánh xạ bộ nhớ nói riêng, nhưng điều đầu tiên chắc chắn có thể được thực hiện. Chỉnh sửa sắp tới.
afrazier

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.