5

GitHub - jwiegley/use-package-examples: Example declarations to demonstrate the...

 1 year ago
source link: https://github.com/jwiegley/use-package-examples
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

use-packages-examples

This repository collects community contributed use-package configuration examples, covering from Emacs built-in packages to 3rt party packages.

Built-in packages

Set environment variables:

(use-package env
  :ensure nil
  :config
  (setenv "PYTHONIOENCODING" "utf-8"))

mule and mule-cmds

Set default input method and coding system:

(use-package mule
  :ensure nil
  :init
  (setq default-input-method 'MacOSX)
  :config
  (set-terminal-coding-system 'utf-8)
  (set-keyboard-coding-system 'utf-8))

(use-package mule-cmds
  :preface (provide 'mule-cmds)
  :config
  (set-language-environment 'UTF-8))

ns-win

Set Mac modifiers:

(use-package ns-win
  :ensure nil
  :init
  (setq mac-command-modifier 'meta
        mac-option-modifier 'super))

hippie-exp

Set keybinding to M-/ and customize the list of expansion functions:

(use-package hippie-exp
  :ensure nil
  :bind ("M-/" . hippie-expand)
  :init
  (setq hippie-expand-try-functions-list
        '(try-expand-dabbrev
          try-expand-dabbrev-visible
          try-expand-dabbrev-all-buffers
          try-expand-dabbrev-from-kill
          try-complete-file-name-partially
          try-complete-file-name
          try-expand-all-abbrevs
          try-expand-list
          try-expand-line
          try-complete-lisp-symbol-partially
          try-complete-lisp-symbol)))

avoid

Move up mouse when cursor comes:

(use-package avoid
  :ensure nil
  :config
  (mouse-avoidance-mode 'animate))

tool-bar, scroll-bar, menu-bar

Disable all of them:

(use-package tool-bar
  :ensure nil
  :config
  (tool-bar-mode -1))

(use-package scroll-bar
  :ensure nil
  :config
  (scroll-bar-mode -1))

(use-package menu-bar
  :unless (eq system-type 'darwin)
  :ensure nil
  :config
  (menu-bar-mode -1))
(use-package time
  :ensure nil
  :init
  (setq display-time-day-and-date t
        display-time-24hr-format t
        display-time-use-mail-icon t
        display-time-interval 10)
  :config
  (display-time))

shell

Kill shell buffer when shell exits:

(use-package shell
  :ensure nil
  :hook (shell-mode . my-shell-mode-hook-func)
  :config
  (defun my-shell-mode-hook-func ()
    (set-process-sentinel (get-buffer-process (current-buffer))
                          'my-shell-mode-kill-buffer-on-exit))
  (defun my-shell-mode-kill-buffer-on-exit (process state)
    (message "%s" state)
    (if (or
         (string-match "exited abnormally with code.*" state)
         (string-match "finished" state))
        (kill-buffer (current-buffer)))))

paren

(use-package paren
  :ensure nil
  :init
  (setq show-paren-style 'parentheses)
  :config
  (show-paren-mode t))

3rd party packages

exec-path-from-shell

Copy specified environment variables:

(use-package exec-path-from-shell
  :if (memq window-system '(mac ns x))
  :ensure t
  :init
  (setq exec-path-from-shell-variables '("PATH" "MANPATH" "GOPATH", "PYTHONPATH))
  :config
  (exec-path-from-shell-initialize))

doom-themes

(use-package doom-themes
  :ensure t
  :init
  ;; Global settings (defaults)
  (setq doom-themes-enable-bold t    ; if nil, bold is universally disabled
        doom-themes-enable-italic t) ; if nil, italics is universally disabled
  :config
  (load-theme 'doom-one t)

  ;; Enable flashing mode-line on errors
  (doom-themes-visual-bell-config)

  (use-package doom-themes-ext-treemacs
    :init
    (setq doom-themes-treemacs-theme "doom-colors")) ; use the colorful treemacs theme)
  (doom-themes-treemacs-config)

  ;; Corrects (and improves) org-mode's native fontification.
  (doom-themes-org-config))

doom-modeline

(use-package doom-modeline
  :ensure t
  :init
  (setq doom-modeline-minor-modes t
        doom-modeline-vcs-max-length 20)
  :config
  (doom-modeline-mode 1))

highlight-indent-guides

(use-package highlight-indent-guides
  :ensure t
  :delight highlight-indent-guides-mode
  :init
  (setq highlight-indent-guides-method 'character
        ;; default is \x2502 but it is very slow on Mac
        highlight-indent-guides-character ?\xFFE8
        highlight-indent-guides-responsive 'top))

rainbow-delimiters

Hook to prog-mode:

(use-package rainbow-delimiters
  :ensure t)

(use-package prog-mode
  :ensure nil
  :hook ((prog-mode . rainbow-delimiters-mode)))

projectile

(use-package projectile
  :ensure t
  :bind-keymap ("s-p" . projectile-command-map)
  :init
  (setq projectile-mode-line-function '(lambda () (format " [%s]" (projectile-project-name))))
  :config
  (projectile-mode +1))

company

(use-package company
  :ensure t
  :delight company-mode
  :demand t
  :init
  (setq company-idle-delay 0.1
        company-minimum-prefix-length 1)
  :bind (:map company-active-map
         ("C-n" . company-select-next)
         ("C-p". company-select-previous))
  :config
  (global-company-mode))

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK