Tôi thường bỏ ghi các dòng dài và thụt lề bằng các thẻ (như HTML, XML, JSON).
Để thực hiện hoạt động như thể tôi thêm:
(setq line-number-display-limit large-file-warning-threshold)
(setq line-number-display-limit-width 200)
(defun my--is-file-large()
"If buffer too large and my cause performance issue."
(< large-file-warning-threshold (buffer-size)))
(define-derived-mode my-large-file-mode fundamental-mode "LargeFile"
"Fixes performance issues in Emacs for large files."
;; (setq buffer-read-only t)
(setq bidi-display-reordering nil)
(jit-lock-mode nil)
(buffer-disable-undo)
(set (make-variable-buffer-local 'global-hl-line-mode) nil)
(set (make-variable-buffer-local 'line-number-mode) nil)
(set (make-variable-buffer-local 'column-number-mode) nil))
(add-to-list 'magic-mode-alist (cons #'my--is-file-large #'my-large-file-mode))
Lưu ý rằng tôi không sử dụng find-file-hooks
như magic-mode-alist
thường rỗng và được ưu tiên. Nếu tôi thêm find-file-hooks
, trước tiên hãy xác thực tệp XML theo nxml-mode
và sau đó chuyển sang fundamental-mode
.
Tôi chia dòng bằng regex, cho XML là: C-M-% ><RET>NL< RET !
.
Sau khi Emac chia các dòng dài - có thể bật nhiều mã *-modes
và thụt lề lại.
Bạn đã anwered câu hỏi của riêng bạn. font-lock chậm. Ngoài ra, 'find-file-literally' là tốt vì nó đưa bạn vào chế độ cơ bản. –
@ abo-abo Sau đó, đề xuất của bạn là tắt 'font-lock-mode'? – goofansu
@ abo-abo Tệp lớn của tôi là khoảng 8000 dòng. Tôi nghĩ nó bình thường. – goofansu