elisp
🧩 Syntax:
;;; Performance tweaks
;;; ---------------------------------------
(setq site-run-file nil)
(setq package-native-compile t)
;; Store custom settings in a separate file
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
;; Increase garbage collection threshold during startup
(setq gc-cons-threshold most-positive-fixnum)
(add-hook 'after-init-hook
(lambda () (setq gc-cons-threshold 800000)))
;; Better memory management
(setq gc-cons-percentage 0.6
read-process-output-max (* 1024 1024)) ;; 1mb
;; Faster startup with native compilation settings
(when (featurep 'native-compile)
(setq native-comp-deferred-compilation nil)
(setq native-comp-speed 2))
;; More responsive keyboard in terminal
(setq echo-keystrokes 0.01
redisplay-dont-pause t)
;; Better terminal scrolling
(setq auto-window-vscroll nil)
;; Don't compact font caches during GC
(setq inhibit-compacting-font-caches t)
;;; UI settings
;;; ---------------------------------------
;; Minimal startup settings
(setq inhibit-startup-screen t
initial-scratch-message nil
make-backup-files nil
auto-save-default nil
create-lockfiles nil)
(menu-bar-mode -1)
(column-number-mode 1)
;; Cursor settings
(blink-cursor-mode -1)
(setq visible-cursor nil)
;; Save minibuffer history
(savehist-mode 1)
;; Remember and restore the last cursor location of opened files
(save-place-mode 1)
;; Revert buffers automatically when underlying files are changed
(global-auto-revert-mode 1)
;; Simple UI improvements
(defalias 'yes-or-no-p 'y-or-n-p)
(setq-default indent-tabs-mode nil
tab-width 4
standard-indent 4)
;; Theme (only if needed in terminal)
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
(load-theme 'theBestTheme t)
;; Better paren matching
(show-paren-mode 1)
(setq show-paren-delay 0
show-paren-context-when-offscreen t)
(global-font-lock-mode 1)
;;; Package management
;;; ---------------------------------------
;; Package initialization optimization
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/"))
package-enable-at-startup nil)
(package-initialize)
;; Use-package setup
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
;; Better minibuffer completion
(use-package vertico
:init
(vertico-mode 1)
:config
(setq vertico-cycle t))
;; Improve minibuffer interaction
(use-package orderless
:init
(setq completion-styles '(orderless basic)
completion-category-defaults nil
completion-category-overrides '((file (styles . (partial-completion))))))
;; Expand region
(use-package expand-region
:ensure t
:bind ("M-o" . er/expand-region))
;; Better unique buffer names (absolutely for js, python, where identical files)
(require 'uniquify)
(setq uniquify-buffer-name-style 'forward)
;;; Programming modes
;;; ---------------------------------------
;; Common programming settings
(add-hook 'prog-mode-hook
(lambda ()
(setq show-trailing-whitespace t)
(set-face-background 'trailing-whitespace "orange")))
;; External packages with deferred loading
(use-package go-mode
:defer t
:mode "\\.go\\'")
(use-package puppet-mode
:defer t
:mode "\\.pp\\'")
;; Built-in modes with deferred loading
(use-package cc-mode
:ensure nil
:defer t
:mode (("\\.c\\'" . c-mode)
("\\.h\\'" . c-mode)
("\\.cpp\\'" . c++-mode)
("\\.hpp\\'" . c++-mode))
:config
(setq c-default-style "linux"
c-basic-offset 4))
;; Other built-in mode associations
(use-package python-mode
:ensure nil
:defer t
:mode "\\.py\\'")
(use-package sql-mode
:ensure nil
:defer t
:mode "\\.sql\\'")
(use-package sh-mode
:ensure nil
:defer t
:mode ("\\.sh\\'" "\\.bash\\'" "\\.ksh\\'" "\\.zsh\\'"))
;; C# mode
(use-package csharp-mode
:ensure nil
:defer t
:mode "\\.cs\\'")
;; Default to conf-mode for unknown files
(setq major-mode 'conf-mode)
;;; Keys
;;; ---------------------------------------
(global-set-key (kbd "C-c w") 'delete-trailing-whitespace)
(global-set-key (kbd "M-;") 'comment-line)