# HG changeset patch # User Oleksandr Gavenko # Date 1423665162 -7200 # Node ID c658f0d30525e8f10870181e50e85400e21cf19a # Parent 4de7a444cf35380fc8a073d9c4ffae67ec8b0e77 Fixes performance issues in Emacs for large files. diff -r 4de7a444cf35 -r c658f0d30525 .emacs-my --- a/.emacs-my Wed Feb 11 19:09:06 2015 +0200 +++ b/.emacs-my Wed Feb 11 16:32:42 2015 +0200 @@ -303,6 +303,8 @@ (setq column-number-mode t) (setq line-number-mode t) (setq size-indication-mode t) +(setq line-number-display-limit large-file-warning-threshold) +(setq line-number-display-limit-width 200) ;; (linum-mode 1) ;; Also useful such format: (setq display-time-format " %H:%M %d-%m-%y ") @@ -905,6 +907,24 @@ (icomplete-mode 1) (setq icomplete-with-completion-tables t) +(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) + ;; (make-variable-buffer-local 'mode-line-format) + ;; (setq mode-line-format (delq 'mode-line-position 'mode-line-format)) + (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)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (message "completion")