Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;; package --- Emacs's Conf
- ;;; Commentary:
- ;; Package configs
- (require 'package)
- (setq locate-command "mdfind")
- (setq gc-cons-threshold (* 50 1000 1000))
- (setq package-enable-at-startup nil)
- ;; set up package sources
- (setq package-archives '(("elpa" . "http://elpa.gnu.org/packages/")
- ("melpa" . "http://melpa.org/packages/")))
- (package-initialize)
- (unless (package-installed-p 'use-package)
- (package-refresh-contents)
- (package-install 'use-package))
- (require 'use-package)
- (set-face-attribute 'default nil :font "Fira Mono" :height 150)
- (desktop-save-mode 1)
- ;; display line numbers
- (global-display-line-numbers-mode t)
- ;; Disable line numbers for some modes
- (dolist (mode '(org-mode-hook
- term-mode-hook
- shell-mode-hook
- treemacs-mode-hook
- eshell-mode-hook))
- (add-hook mode (lambda () (display-line-numbers-mode 0))))
- (global-auto-revert-mode)
- (recentf-mode 1)
- (use-package which-key
- :config
- (setq which-key-prefix-prefix "+")
- (which-key-mode 1))
- ;; Flycheck
- (use-package flycheck
- :ensure t
- :init (global-flycheck-mode)
- :config (setq flycheck-check-syntax-automatically '(save mode-enabled)))
- ;; Flycheck tooltip
- (use-package flycheck-pos-tip
- :ensure t
- :config
- (setq flycheck-pos-tip-timeout 10
- flycheck-display-errors-delay 0.5))
- (add-hook 'global-flycheck-mode-hook (lambda ()
- (flycheck-pos-tip-mode)))
- ;; Language Server Protocol
- (use-package lsp-mode
- :ensure t
- :commands lsp
- :init
- (lsp)
- :config
- (add-hook 'c-mode-hook 'lsp)
- (add-hook 'c++-mode-hook 'lsp)
- (add-hook 'python-mode-hook 'lsp)
- (add-hook 'ess-mode-hook 'lsp))
- (use-package projectile
- :config
- (projectile-mode +1)
- ;; Recommended keymap prefix on macOS
- (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map))
- ;; Org mode packages and settings
- (setq org-src-fontify-natively t)
- (setq org-src-tab-acts-natively t)
- (use-package ox-pandoc
- :after ox
- :ensure t)
- (use-package org-bullets
- :after ox
- :ensure t)
- (use-package ox-clip
- :ensure t
- :after ox)
- (add-hook 'org-mode-hook
- (lambda ()
- (org-bullets-mode)))
- (add-hook 'text-mode-hook 'auto-fill-mode)
- (add-hook 'gfm-mode-hook 'auto-fill-mode)
- (add-hook 'org-mode-hook 'auto-fill-mode)
- (use-package ggtags
- :ensure t
- :config
- (add-hook 'c-mode-hook 'ggtags-mode)
- (add-hook 'c++-mode 'ggtags-mode))
- (use-package dired
- :ensure nil
- :config
- (when (string= system-type "darwin")
- (setq dired-use-ls-dired t
- insert-directory-program "gls"))
- :custom
- (dired-listing-switches "-aBhl --group-directories-first"))
- (require 'ansi-color)
- (add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
- ;; hideshow minor mode in all programming modes
- (add-hook 'prog-mode-hook #'hs-minor-mode)
- (use-package dumb-jump
- :ensure t
- :config
- (add-hook 'xref-backend-functions #'dumb-jump-xref-activate)
- (setq dumb-jump-prefer-searcher 'rg))
- ;; Enable vertico
- (use-package vertico
- :ensure t
- :init
- (vertico-mode))
- ;; Persist history over Emacs restarts. Vertico sorts by history position.
- (use-package savehist
- :init
- (savehist-mode))
- ;; https://github.com/minad/corfu
- (use-package corfu
- :ensure t
- ;; Optional customizations
- :custom
- ;; (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
- (corfu-auto t) ;; Enable auto completion
- (corfu-separator ?\s) ;; Orderless field separator
- :init
- (global-corfu-mode))
- ;; A few more useful configurations...
- (use-package emacs
- :init
- ;; Add prompt indicator to `completing-read-multiple'.
- ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
- (defun crm-indicator (args)
- (cons (format "[CRM%s] %s"
- (replace-regexp-in-string
- "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
- crm-separator)
- (car args))
- (cdr args)))
- (advice-add #'completing-read-multiple :filter-args #'crm-indicator)
- ;; Do not allow the cursor in the minibuffer prompt
- (setq completion-cycle-threshold 3)
- (setq minibuffer-prompt-properties
- '(read-only t cursor-intangible t face minibuffer-prompt))
- (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
- ;; Enable recursive minibuffers
- (setq enable-recursive-minibuffers t))
- ;; Optionally use the `orderless' completion style.
- (use-package orderless
- :ensure t
- :init (icomplete-mode)
- (setq completion-styles '(orderless basic)
- completion-category-defaults nil
- completion-category-overrides '((file (styles partial-completion)))))
- (use-package ctrlf
- :ensure t
- :init
- (ctrlf-mode +1))
- (use-package consult
- :ensure t
- :init
- (setq completion-styles '(substring basic)))
- (midnight-mode)
- ;; Emacs.clr file can become corrupted and cause the emacs build to fail
- (add-hook 'midnight-hook
- (lambda ()
- (if (file-exists-p "~/Library/Colors/Emacs.clr")
- (delete-file "~/Library/Colors/Emacs.clr") nil)))
- (midnight-delay-set 'midnight-delay "1:30am")
- (org-babel-do-load-languages
- 'org-babel-load-languages '((C . t)
- (R . t)
- (emacs-lisp . t)
- (python . t)))
- (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
- ;; ivy mode
- (use-package ivy
- :ensure t
- :after (orderless)
- :config
- (ivy-mode 1)
- (add-to-list 'ivy-highlight-functions-alist
- '(orderless-ivy-re-builder . orderless-ivy-highlight))
- (setq ivy-use-virtual-buffers t
- ivy-re-builders-alist nil
- enable-recursive-minibuffers t))
- (use-package async
- :ensure t)
- (autoload 'dired-async-mode "dired-async.el" nil t)
- (dired-async-mode 1)
- (async-bytecomp-package-mode 1)
- ;; Make gc pauses faster by decreasing the threshold.
- (setq gc-cons-threshold (* 8 1024 1024))
- (setq custom-file "~/.emacs.d/custom.el")
- (load custom-file)
- ;;; init.el ends here
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement