diff options
author | Martin Polden <martin.polden@gmail.com> | 2016-02-25 22:47:45 +0100 |
---|---|---|
committer | Martin Polden <martin.polden@gmail.com> | 2016-02-25 23:17:48 +0100 |
commit | 3974306870486650a0e5bb6669280bae12b694fe (patch) | |
tree | a69574c99d38f15b678dd47dd31f5b163c8079dd /lisp | |
parent | c75c977394d062f11dbc1ed0379bf18fcf3c709e (diff) |
Use use-package
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/init-appearance.el | 37 | ||||
-rw-r--r-- | lisp/init-company-mode.el | 6 | ||||
-rw-r--r-- | lisp/init-editing.el | 27 | ||||
-rw-r--r-- | lisp/init-git.el | 105 | ||||
-rw-r--r-- | lisp/init-go-mode.el | 54 | ||||
-rw-r--r-- | lisp/init-ibuffer.el | 46 | ||||
-rw-r--r-- | lisp/init-ido.el | 72 | ||||
-rw-r--r-- | lisp/init-imenu.el | 14 | ||||
-rw-r--r-- | lisp/init-javascript.el | 22 | ||||
-rw-r--r-- | lisp/init-lisp.el | 4 | ||||
-rw-r--r-- | lisp/init-mac.el | 4 | ||||
-rw-r--r-- | lisp/init-markdown-mode.el | 19 | ||||
-rw-r--r-- | lisp/init-nginx.el | 15 | ||||
-rw-r--r-- | lisp/init-package.el | 33 | ||||
-rw-r--r-- | lisp/init-projectile.el | 29 | ||||
-rw-r--r-- | lisp/init-python-mode.el | 8 | ||||
-rw-r--r-- | lisp/init-rainbow-delimiters.el | 10 | ||||
-rw-r--r-- | lisp/init-sane-defaults.el | 7 | ||||
-rw-r--r-- | lisp/init-server.el | 7 | ||||
-rw-r--r-- | lisp/init-sessions.el | 13 | ||||
-rw-r--r-- | lisp/init-tramp.el | 109 | ||||
-rw-r--r-- | lisp/init-yaml-mode.el | 28 |
22 files changed, 330 insertions, 339 deletions
diff --git a/lisp/init-appearance.el b/lisp/init-appearance.el index 52f29b7..23cb0fb 100644 --- a/lisp/init-appearance.el +++ b/lisp/init-appearance.el @@ -20,23 +20,27 @@ (global-hl-line-mode 1) ;; set theme -(if (display-graphic-p) - (progn (require-package 'material-theme) - (load-theme 'material t)) - (set-face-background hl-line-face "gray13")) +(when (display-graphic-p) + (use-package material-theme + :config (load-theme 'material t))) ;; highlight matching parentheses (show-paren-mode 1) ;; highlight lines exceeding fill-column -(require 'whitespace) -(setq whitespace-style '(face empty lines-tail trailing)) -(setq whitespace-line-column nil) -;; make whitespace-mode respect a mode-specific fill-column value -(add-hook 'hack-local-variables-hook - (lambda () - (when (derived-mode-p 'prog-mode) - (whitespace-mode 1)))) +(use-package whitespace + :diminish whitespace-mode + + :init + (setq whitespace-style '(face empty lines-tail trailing)) + (setq whitespace-line-column nil) + + :config + ;; make whitespace-mode respect a mode-specific fill-column value + (add-hook 'hack-local-variables-hook + (lambda () + (when (derived-mode-p 'prog-mode) + (whitespace-mode 1))))) ;; disable word wrapping (setq-default truncate-lines t) @@ -45,13 +49,4 @@ (setq line-number-mode t column-number-mode t) -;; unclutter modeline -(require-package 'diminish) -(require 'diminish) -(eval-after-load "whitespace" '(diminish 'whitespace-mode)) -(eval-after-load "whole-line-or-region" '(diminish 'whole-line-or-region-mode)) -(eval-after-load "projectile" '(diminish 'projectile-mode)) -(eval-after-load "subword" '(diminish 'subword-mode)) -(eval-after-load "autorevert" '(diminish 'auto-revert-mode)) - (provide 'init-appearance) diff --git a/lisp/init-company-mode.el b/lisp/init-company-mode.el index 012bb36..7433937 100644 --- a/lisp/init-company-mode.el +++ b/lisp/init-company-mode.el @@ -1,7 +1,5 @@ -;; install packages -(require-packages '(company company-go)) +(use-package company) -(require 'company) -(require 'company-go) +(use-package company-go) (provide 'init-company-mode) diff --git a/lisp/init-editing.el b/lisp/init-editing.el index 567a68f..8ffe1eb 100644 --- a/lisp/init-editing.el +++ b/lisp/init-editing.el @@ -1,9 +1,9 @@ -;; install packages -(require-package 'whole-line-or-region) +(use-package whole-line-or-region + :diminish whole-line-or-region-mode -(require 'whole-line-or-region) -(require 'misc) -(require 'whitespace) + :config + ;; cut or copy the currrent line if no region is active + (whole-line-or-region-mode 1)) ;; disable backup files (setq make-backup-files nil) @@ -19,11 +19,11 @@ '("z\\(sh[^/]*\\|login\\|logout\\|profile\\|preztorc\\)\\'" . sh-mode)) -;; cut or copy the currrent line if no region is active -(whole-line-or-region-mode 1) - ;; use zap-up-to-char instead of zap-to-char -(global-set-key (kbd "M-z") 'zap-up-to-char) +(use-package misc + :ensure nil + + :bind ("M-z" . zap-up-to-char)) ;; swap RET and C-j (global-set-key (kbd "RET") 'newline-and-indent) @@ -63,7 +63,8 @@ Including indent-buffer, which should not be called automatically on save." (message "Skipping indent-buffer in %s." major-mode) (indent-buffer))) -(global-set-key (kbd "C-c c") 'cleanup-buffer) +(use-package whitespace + :bind ("C-c c" . cleanup-buffer)) ;; keybindings for navigating elisp sources (defun call-interactively-other-window (function &optional noselect) @@ -109,6 +110,10 @@ NOSELECT is non-nil." (global-set-key (kbd "C-c n") 'rename-this-buffer-and-file) ;; enable subword-mode in prog-mode -(add-hook 'prog-mode-hook 'subword-mode) +(use-package subword + :ensure nil + :diminish subword-mode + :config + (add-hook 'prog-mode-hook 'subword-mode)) (provide 'init-editing) diff --git a/lisp/init-git.el b/lisp/init-git.el index a858b40..3d225ad 100644 --- a/lisp/init-git.el +++ b/lisp/init-git.el @@ -1,39 +1,52 @@ -;; install packages -(require-packages - '(magit gitconfig-mode gitignore-mode)) - -(require 'magit) -(require 'gitconfig-mode) -(require 'gitignore-mode) -(require 'grep) -(require 'vc-git) - ;; use appropiate git-mode for .gitconfig and .gitignore extensions -(add-to-list 'auto-mode-alist '("gitignore\\'" . gitignore-mode)) -(add-to-list 'auto-mode-alist '("gitconfig\\'" . gitconfig-mode)) - -;; magit keybinding -(global-set-key (kbd "C-x m") 'magit-status) - -;; magit blame keybinding -(global-set-key (kbd "C-c b") - (lambda () - (interactive) - (if magit-blame-mode - (magit-blame-quit) - (call-interactively 'magit-blame)))) - -;; disable gravatars -(setq magit-revision-show-gravatars nil) - -(defun magit-diff-visit-file-noselect () - "Visit current item, but don't select it." - (interactive) - (let ((current-window (selected-window))) - (call-interactively 'magit-diff-visit-file) - (select-window current-window))) - -(add-hook 'magit-status-mode-hook +(use-package gitignore-mode + :mode ("gitignore\\'" . gitignore-mode)) + +(use-package gitconfig-mode + :mode ("gitconfig\\'" . gitconfig-mode)) + +;; magit config +(use-package magit + :init + ;; disable gravatars + (setq magit-revision-show-gravatars nil) + + :bind (("C-x m" . magit-status) + ("C-c b" . git-blame) + ("C-c w" . git-branch-with-prefix) + ("C-c g" . git-grep-root)) + + :config + (defun git-blame () + "Active or disable git blame." + (interactive) + (if magit-blame-mode + (magit-blame-quit) + (call-interactively 'magit-blame))) + + (defun magit-diff-visit-file-noselect () + "Visit current item, but don't select it." + (interactive) + (let ((current-window (selected-window))) + (call-interactively 'magit-diff-visit-file) + (select-window current-window))) + + (defun git-branch-with-prefix () + "Create and checkout <username>/BRANCH from master." + (interactive) + (let* ((prefix (concat user-login-name "/")) + (suffix (magit-read-string-ns (format "Branch name (prefix: %s)" prefix))) + (branch (concat prefix suffix))) + (magit-run-git "checkout" "-b" branch "master"))) + + (defun git-grep-root () + "Run git-grep in the repository root." + (interactive) + (let ((git-root-path (magit-toplevel))) + (when git-root-path + (vc-git-grep (grep-read-regexp) "*" git-root-path)))) + + (add-hook 'magit-status-mode-hook (lambda () ;; make C-o and o behave as in dired (define-key magit-status-mode-map (kbd "C-o") @@ -41,25 +54,7 @@ (define-key magit-status-mode-map (kbd "o") 'magit-diff-visit-file))) -(defun git-grep-root () - "Run git-grep in the repository root." - (interactive) - (let ((git-root-path (magit-toplevel))) - (when git-root-path - (vc-git-grep (grep-read-regexp) "*" git-root-path)))) - -;; run git grep in the repository root -(global-set-key (kbd "C-c g") 'git-grep-root) - -(defun git-branch-with-prefix () - "Create and checkout <username>/BRANCH from master." - (interactive) - (let* ((prefix (concat user-login-name "/")) - (suffix (magit-read-string-ns (format "Branch name (prefix: %s)" prefix))) - (branch (concat prefix suffix))) - (magit-run-git "checkout" "-b" branch "master"))) - -(global-set-key (kbd "C-c w") 'git-branch-with-prefix) + (add-hook 'git-commit-mode-hook 'flyspell-mode)) (defun grep-visit-buffer-other-window (&optional event noselect) "Visit grep result in another window." @@ -89,6 +84,4 @@ (define-key grep-mode-map (kbd "p") 'compilation-previous-error))) -(add-hook 'git-commit-mode-hook 'flyspell-mode) - (provide 'init-git) diff --git a/lisp/init-go-mode.el b/lisp/init-go-mode.el index 2699080..51440d5 100644 --- a/lisp/init-go-mode.el +++ b/lisp/init-go-mode.el @@ -1,7 +1,29 @@ -;; install package -(require-package 'go-mode) - -(require 'go-mode) +(use-package go-mode + :init + ;; use goimports if available + (when (executable-find "goimports") + (setq gofmt-command "goimports")) + + :config + ;; run gofmt before saving file + (add-hook 'before-save-hook 'gofmt-before-save) + + ;; configure company-mode + ;; requires https://github.com/nsf/gocode for the backend + (when (and (featurep 'company) (featurep 'company-go)) + (add-hook 'go-mode-hook (lambda () + (setq-local company-backends '(company-go)) + (company-mode)))) + + (add-hook 'go-mode-hook + (lambda () + ;; C-c p runs gofmt on the buffer + (define-key go-mode-map (kbd "C-c p") 'gofmt) + ;; adjust fill-column + (setq-local fill-column 120) + ;; use flat imenu index + (setq-local imenu-create-index-function + #'go-mode-create-flat-imenu-index)))) (defun go-mode-create-imenu-index () "Create and return an imenu index alist. Unlike the default @@ -28,28 +50,4 @@ items follow a style that is consistent with other prog-modes." "Return a flat imenu index alist. See `go-mode-create-imenu-index'." (apply 'nconc (mapcar 'cdr (go-mode-create-imenu-index)))) -(add-hook 'go-mode-hook - (lambda () - ;; C-c p runs gofmt on the buffer - (define-key go-mode-map (kbd "C-c p") 'gofmt) - ;; adjust fill-column - (setq-local fill-column 120) - ;; use flat imenu index - (setq-local imenu-create-index-function - #'go-mode-create-flat-imenu-index))) - -;; run gofmt before saving file -(add-hook 'before-save-hook 'gofmt-before-save) - -;; configure company-mode -;; requires https://github.com/nsf/gocode for the backend -(when (and (featurep 'company) (featurep 'company-go)) - (add-hook 'go-mode-hook (lambda () - (setq-local company-backends '(company-go)) - (company-mode)))) - -;; use goimports if available -(when (executable-find "goimports") - (setq gofmt-command "goimports")) - (provide 'init-go-mode) diff --git a/lisp/init-ibuffer.el b/lisp/init-ibuffer.el index 57e2029..2f194a4 100644 --- a/lisp/init-ibuffer.el +++ b/lisp/init-ibuffer.el @@ -1,31 +1,29 @@ -;; install package -(require-package 'ibuffer-vc) +(use-package ibuffer + :init + ;; disable confirmation for killing unmodified buffers + (setq ibuffer-expert t) -;; load ibuffer and ibuffer-vc -(require 'ibuffer) -(require 'ibuffer-vc) + ;; sort buffers by name + (setq-default ibuffer-default-sorting-mode 'alphabetic) -;; keep buffer list up to date and group ibuffer by repository root -(add-hook 'ibuffer-hook - (lambda () - (ibuffer-auto-mode 1) - (ibuffer-vc-set-filter-groups-by-vc-root) - ;; make C-o and o behave as in dired - (define-key ibuffer-mode-map (kbd "o") - 'ibuffer-visit-buffer-other-window) - (define-key ibuffer-mode-map (kbd "C-o") - 'ibuffer-visit-buffer-other-window-noselect))) + ;; hide empty filter groups + (setq ibuffer-show-empty-filter-groups nil) -;; use ibuffer -(global-set-key (kbd "C-x C-b") 'ibuffer-other-window) + ;; use ibuffer + :bind ("C-x C-b" . ibuffer-other-window) -;; disable confirmation for killing unmodified buffers -(setq ibuffer-expert t) + :config + ;; keep buffer list up to date and group ibuffer by repository root + (add-hook 'ibuffer-hook + (lambda () + (ibuffer-auto-mode 1) + (ibuffer-vc-set-filter-groups-by-vc-root) + ;; make C-o and o behave as in dired + (define-key ibuffer-mode-map (kbd "o") + 'ibuffer-visit-buffer-other-window) + (define-key ibuffer-mode-map (kbd "C-o") + 'ibuffer-visit-buffer-other-window-noselect)))) -;; sort buffers by name -(setq-default ibuffer-default-sorting-mode 'alphabetic) - -;; hide empty filter groups -(setq ibuffer-show-empty-filter-groups nil) +(use-package ibuffer-vc) (provide 'init-ibuffer) diff --git a/lisp/init-ido.el b/lisp/init-ido.el index 03faddb..28f584f 100644 --- a/lisp/init-ido.el +++ b/lisp/init-ido.el @@ -1,37 +1,43 @@ -;; install packages -(require-packages - '(flx-ido ido-vertical-mode ido-ubiquitous smex)) - -;; load ido -(require 'ido) -(ido-mode 1) -(setq ido-enable-prefix nil - ido-enable-flex-matching t - ido-case-fold nil - ido-auto-merge-work-directories-length -1 - ido-create-new-buffer 'always - ido-use-filename-at-point nil - ido-max-prospects 10) - -;; load flx-ido -(require 'flx-ido) -(flx-ido-mode 1) -;; disable ido faces to see flx highlights. -(setq ido-use-faces nil) - -;; vertical mode for ido -(require 'ido-vertical-mode) -(ido-vertical-mode 1) -(setq ido-vertical-show-count t) - -;; load ido-ubiquitous (a better ido-everywhere) -(require 'ido-ubiquitous) -(ido-ubiquitous-mode 1) +;; ido +(use-package ido + :init + (setq ido-enable-prefix nil + ido-enable-flex-matching t + ido-case-fold nil + ido-auto-merge-work-directories-length -1 + ido-create-new-buffer 'always + ido-use-filename-at-point nil + ido-max-prospects 10) + + :config + (ido-mode 1)) + +;; flx-ido +(use-package flx-ido + :init + ;; disable ido faces to see flx highlights. + (setq ido-use-faces nil) + + :config + (flx-ido-mode 1)) + +;; ido-vertical-mode +(use-package ido-vertical-mode + :init + (setq ido-vertical-show-count t) + + :config + (ido-vertical-mode 1)) + +;; ido-ubiquitous +(use-package ido-ubiquitous + :config + (ido-ubiquitous-mode 1)) ;; smex -(require 'smex) -(global-set-key (kbd "M-x") 'smex) -(global-set-key (kbd "M-X") 'smex-major-mode-commands) -(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command) +(use-package smex + :bind (("M-x" . smex) + ("M-X" . smex-major-mode-commands) + ("C-c C-c M-x" . execute-extended-command))) (provide 'init-ido) diff --git a/lisp/init-imenu.el b/lisp/init-imenu.el index 97448ec..0e76744 100644 --- a/lisp/init-imenu.el +++ b/lisp/init-imenu.el @@ -1,10 +1,10 @@ -(require 'imenu) +(use-package imenu + :init + ;; make imenu automatically rescan buffers + (setq imenu-auto-rescan t) -;; make imenu automatically rescan buffers -(setq imenu-auto-rescan t) - -;; C-c i shows imenu -;; imenu will use ido completion if ido-ubiquitous-mode is enabled -(global-set-key (kbd "C-c i") 'imenu) + ;; C-c i shows imenu + ;; imenu will use ido completion if ido-ubiquitous-mode is enabled + :bind ("C-c i" . imenu)) (provide 'init-imenu) diff --git a/lisp/init-javascript.el b/lisp/init-javascript.el index 5b61895..b9fd43a 100644 --- a/lisp/init-javascript.el +++ b/lisp/init-javascript.el @@ -1,8 +1,18 @@ -(require 'js) -(add-to-list 'auto-mode-alist '("\\.\\(json\\|jshintrc\\)\\'" . js-mode)) +(use-package js + :ensure nil -;; set indent level to 2 -(setq-default js-indent-level 2) + :init + ;; set indent level to 2 + (setq-default js-indent-level 2) + + :mode + ;; use js-mode for json and jshint + ("\\.\\(json\\|jshintrc\\)\\'" . js-mode) + + :config + (add-hook 'js-mode-hook + (lambda () + (define-key js-mode-map (kbd "C-c p") 'jq-reformat)))) ;; use jq for reformatting json (defun jq-reformat-region (begin end) @@ -32,8 +42,4 @@ (jq-reformat-region (region-beginning) (region-end)) (jq-reformat-region (point-min) (point-max)))) -(add-hook 'js-mode-hook - (lambda () - (define-key js-mode-map (kbd "C-c p") 'jq-reformat))) - (provide 'init-javascript) diff --git a/lisp/init-lisp.el b/lisp/init-lisp.el index 86ac572..b90fd78 100644 --- a/lisp/init-lisp.el +++ b/lisp/init-lisp.el @@ -1,6 +1,4 @@ -(require-package 'paredit) - -(require 'paredit) +(use-package paredit) ;; enable paredit (add-hook 'emacs-lisp-mode-hook 'paredit-mode) diff --git a/lisp/init-mac.el b/lisp/init-mac.el index 3235a68..4c36bd1 100644 --- a/lisp/init-mac.el +++ b/lisp/init-mac.el @@ -29,8 +29,8 @@ (setq trash-directory "~/.Trash") ;; use path from shell -(require-package 'exec-path-from-shell) -(exec-path-from-shell-initialize) +(use-package exec-path-from-shell + :config (exec-path-from-shell-initialize)) ;; add binding for toggling fullscreen (global-set-key (kbd "M-RET") 'toggle-frame-fullscreen) diff --git a/lisp/init-markdown-mode.el b/lisp/init-markdown-mode.el index cd6469e..e99bb68 100644 --- a/lisp/init-markdown-mode.el +++ b/lisp/init-markdown-mode.el @@ -1,17 +1,16 @@ -;; install package -(require-package 'markdown-mode) +(use-package markdown-mode + :mode + ;; use markdown mode for .md and .markdown extensions + ("\\.\\(md\\|markdown\\)\\'" . markdown-mode) -(require 'markdown-mode) -(require 'flyspell) - -;; use markdown mode for .md and .markdown extensions -(add-to-list 'auto-mode-alist '("\\.\\(md\\|markdown\\)\\'" . markdown-mode)) - -(add-hook 'markdown-mode-hook + :config + (add-hook 'markdown-mode-hook (lambda () ;; disable electric indent (setq-local electric-indent-mode nil) ;; enable flyspell - (flyspell-mode 1))) + (flyspell-mode 1)))) + +(use-package flyspell) (provide 'init-markdown-mode) diff --git a/lisp/init-nginx.el b/lisp/init-nginx.el index 42cc70b..a715ada 100644 --- a/lisp/init-nginx.el +++ b/lisp/init-nginx.el @@ -1,12 +1,7 @@ -;; install package -(require-package 'nginx-mode) - -;; load nginx-mode -(require 'nginx-mode) - -;; sites and ansible playbook files -(add-to-list 'auto-mode-alist - '("/nginx/\\(?:sites-\\(?:available\\|enabled\\)\\|files/.*/\\)" . - nginx-mode)) +(use-package nginx-mode + :mode + ;; sites and ansible playbook files + ("/nginx/\\(?:sites-\\(?:available\\|enabled\\)\\|files/.*/\\)" . + nginx-mode)) (provide 'init-nginx) diff --git a/lisp/init-package.el b/lisp/init-package.el index d998720..f6e35a0 100644 --- a/lisp/init-package.el +++ b/lisp/init-package.el @@ -4,26 +4,21 @@ '("melpa" . "http://melpa.org/packages/") t) (package-initialize) -(defun require-package (package &optional min-version no-refresh) - "Install given PACKAGE, optionally requiring MIN-VERSION. -If NO-REFRESH is non-nil, the available package lists will not be -re-downloaded in order to locate PACKAGE." - (if (package-installed-p package min-version) - t - (if (or (assoc package package-archive-contents) no-refresh) - (package-install package) - (progn - (package-refresh-contents) - (require-package package min-version t))))) +;; install missing packages automatically +(setq use-package-always-ensure t) -(defun require-packages (packages) - "Install a list of PACKAGES." - (mapcar (lambda (package) (require-package package)) packages)) +;; install and load use-package +(unless (package-installed-p 'use-package) + (package-install 'use-package)) -;; add ~/.emacs.d/site-lisp to load path, if it exists -;; used for backported code and overriding existing packages -(let ((site-lisp (expand-file-name "site-lisp" user-emacs-directory))) - (when (file-directory-p site-lisp) - (add-to-list 'load-path site-lisp))) +;; install diminish +(unless (package-installed-p 'diminish) + (package-install 'use-package)) + +;; speed up loading of use-package +(eval-when-compile + (require 'use-package)) +(require 'diminish) +(require 'bind-key) (provide 'init-package) diff --git a/lisp/init-projectile.el b/lisp/init-projectile.el index d89c7f6..35f8893 100644 --- a/lisp/init-projectile.el +++ b/lisp/init-projectile.el @@ -1,21 +1,22 @@ -;; install package -(require-package 'projectile) +(use-package projectile + :diminish projectile-mode -;; use a different prefix -(setq projectile-keymap-prefix (kbd "C-c C-p")) + :init + ;; use a different prefix + (setq projectile-keymap-prefix (kbd "C-c C-p")) -(require 'projectile) + ;; switching project opens the top-level directory + (setq projectile-switch-project-action 'projectile-dired) -;; enable projectile mode in all buffers -(projectile-global-mode 1) + ;; ignore remote projects + (setq projectile-ignored-project-function 'file-remote-p) -;; C-x f finds file in project -(global-set-key (kbd "C-x f") 'projectile-find-file) + :bind + ;; C-x f finds file in project + ("C-x f" . projectile-find-file) -;; switching project opens the top-level directory -(setq projectile-switch-project-action 'projectile-dired) - -;; ignore remote projects -(setq projectile-ignored-project-function 'file-remote-p) + :config + ;; enable projectile mode in all buffers + (projectile-global-mode 1)) (provide 'init-projectile) diff --git a/lisp/init-python-mode.el b/lisp/init-python-mode.el index c4f0c30..88217a1 100644 --- a/lisp/init-python-mode.el +++ b/lisp/init-python-mode.el @@ -1,6 +1,6 @@ -(require 'python) - -(add-hook 'python-mode-hook +(use-package python + :config + (add-hook 'python-mode-hook (lambda () ;; disable electric indent (setq-local electric-indent-mode nil) @@ -8,6 +8,6 @@ (setq-local fill-column 79) ;; use flat index in imenu (setq-local imenu-create-index-function - 'python-imenu-create-flat-index))) + 'python-imenu-create-flat-index)))) (provide 'init-python-mode) diff --git a/lisp/init-rainbow-delimiters.el b/lisp/init-rainbow-delimiters.el index cbe0059..71e75dc 100644 --- a/lisp/init-rainbow-delimiters.el +++ b/lisp/init-rainbow-delimiters.el @@ -1,8 +1,6 @@ -;; install package -(require-package 'rainbow-delimiters) - -;; enable rainbow-delimiters in prog-mode -(require 'rainbow-delimiters) -(add-hook 'prog-mode-hook 'rainbow-delimiters-mode) +(use-package rainbow-delimiters + :config + ;; enable rainbow-delimiters in prog-mode + (add-hook 'prog-mode-hook 'rainbow-delimiters-mode)) (provide 'init-rainbow-delimiters) diff --git a/lisp/init-sane-defaults.el b/lisp/init-sane-defaults.el index 5f6d80b..af8490e 100644 --- a/lisp/init-sane-defaults.el +++ b/lisp/init-sane-defaults.el @@ -20,7 +20,11 @@ (setq mouse-wheel-progressive-speed nil) ;; reload buffers automatically when files change on disk -(global-auto-revert-mode 1) +(use-package autorevert + :ensure nil + :diminish auto-revert-mode + :config + (global-auto-revert-mode 1)) ;; reload dired buffers automatically and be quit about it (setq global-auto-revert-non-file-buffers t) @@ -39,7 +43,6 @@ (setq echo-keystrokes 0.1) ;; add directory to buffer name if filename is not unique -(require 'uniquify) (setq uniquify-buffer-name-style 'forward) ;; tetris score file diff --git a/lisp/init-server.el b/lisp/init-server.el index 12a223f..f6e510c 100644 --- a/lisp/init-server.el +++ b/lisp/init-server.el @@ -1,6 +1,7 @@ ;; start server for emacsclient -(require 'server) -(unless (server-running-p) - (server-start)) +(use-package server + :config + (unless (server-running-p) + (server-start))) (provide 'init-server) diff --git a/lisp/init-sessions.el b/lisp/init-sessions.el index d1510e7..0538942 100644 --- a/lisp/init-sessions.el +++ b/lisp/init-sessions.el @@ -1,9 +1,10 @@ -(require 'desktop) +(use-package desktop + :init + ;; save list of open files in ~/.emacs.d/.emacs.desktop + (setq desktop-path (list user-emacs-directory)) -;; remember opened files -(desktop-save-mode 1) - -;; save list of open files in ~/.emacs.d/.emacs.desktop -(setq desktop-path (list user-emacs-directory)) + :config + ;; remember opened files + (desktop-save-mode 1)) (provide 'init-sessions) diff --git a/lisp/init-tramp.el b/lisp/init-tramp.el index f7ce4e0..9d87adc 100644 --- a/lisp/init-tramp.el +++ b/lisp/init-tramp.el @@ -1,58 +1,63 @@ -(require 'tramp) - -;; use ssh as transfer method -(setq tramp-default-method "ssh") - -;; make sudo:remote-host work as expected -(add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:")) -(add-to-list 'tramp-default-proxies-alist - '((regexp-quote (system-name)) nil nil)) - -;; workaround for long ControlPath on darwin -;; https://trac.macports.org/ticket/29794 -(when (eq system-type 'darwin) - (setq tramp-ssh-controlmaster-options - "-o ControlPath=/tmp/%%r@%%h:%%p -o ControlMaster=auto -o ControlPersist=no")) - -;; disable vc integration for remote files -(setq vc-ignore-dir-regexp - (format "\\(%s\\)\\|\\(%s\\)" - vc-ignore-dir-regexp - tramp-file-name-regexp)) - -(defun sudo-prefix-p (prefix) - "Return t if PREFIX is a sudo prefix." - (or (string-equal prefix "/sudo") (string-equal prefix "/sudo:"))) - -(defun ssh-prefix-p (prefix) - "Return t if PREFIX is a ssh prefix." - (string-equal prefix "/ssh")) - -(defun sudo-file-name (filename) - "Return FILENAME with a sudo prefix. +(use-package tramp + :init + ;; use ssh as transfer method + (setq tramp-default-method "ssh") + + ;; workaround for long ControlPath on darwin + ;; https://trac.macports.org/ticket/29794 + (when (eq system-type 'darwin) + (setq tramp-ssh-controlmaster-options + "-o ControlPath=/tmp/%%r@%%h:%%p -o ControlMaster=auto -o ControlPersist=no")) + + ;; disable vc integration for remote files + (setq vc-ignore-dir-regexp + (format "\\(%s\\)\\|\\(%s\\)" + vc-ignore-dir-regexp + tramp-file-name-regexp)) + + :bind + (("C-x +" . sudo-find-file) + ("C-x !" . sudo-current-file)) + + :config + ;; make sudo:remote-host work as expected + (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:")) + (add-to-list 'tramp-default-proxies-alist + '((regexp-quote (system-name)) nil nil)) + + (defun sudo-prefix-p (prefix) + "Return t if PREFIX is a sudo prefix." + (or (string-equal prefix "/sudo") (string-equal prefix "/sudo:"))) + + (defun ssh-prefix-p (prefix) + "Return t if PREFIX is a ssh prefix." + (string-equal prefix "/ssh")) + + (defun sudo-file-name (filename) + "Return FILENAME with a sudo prefix. If FILENAME already has a sudo prefix, do nothing. If FILENAME is accessed over SSH, prefix it with \"/sudo:\". Otherwise, assume FILENAME is a local path and prefix it with \"/sudo::\"." - (let* ((splitname (split-string filename ":")) - (prefix (car splitname)) - (ssh-p (ssh-prefix-p prefix)) - (sudo-p (sudo-prefix-p prefix))) - (if sudo-p - filename - (let ((sudo-prefix (if ssh-p "/sudo" "/sudo:")) - (components (if ssh-p (cdr splitname) splitname))) - (mapconcat 'identity (cons sudo-prefix components) ":"))))) - -(defun sudo-find-file (&optional arg) - "Find file and open it with sudo. + (let* ((splitname (split-string filename ":")) + (prefix (car splitname)) + (ssh-p (ssh-prefix-p prefix)) + (sudo-p (sudo-prefix-p prefix))) + (if sudo-p + filename + (let ((sudo-prefix (if ssh-p "/sudo" "/sudo:")) + (components (if ssh-p (cdr splitname) splitname))) + (mapconcat 'identity (cons sudo-prefix components) ":"))))) + + (defun sudo-find-file (&optional arg) + "Find file and open it with sudo. With a prefix ARG prompt edit currently visited file using sudo." - (interactive "P") - (if arg - (find-alternate-file (sudo-file-name buffer-file-name)) - (find-file (sudo-file-name (ido-read-file-name "Find file with sudo: "))))) - -(global-set-key (kbd "C-x +") 'sudo-find-file) -(global-set-key (kbd "C-x !") (lambda () (interactive) (sudo-find-file t))) - + (interactive "P") + (if arg + (find-alternate-file (sudo-file-name buffer-file-name)) + (find-file (sudo-file-name (ido-read-file-name "Find file with sudo: "))))) + + (defun sudo-current-file () + (interactive) + (sudo-find-file t))) (provide 'init-tramp) diff --git a/lisp/init-yaml-mode.el b/lisp/init-yaml-mode.el index 4215fe8..4168179 100644 --- a/lisp/init-yaml-mode.el +++ b/lisp/init-yaml-mode.el @@ -1,18 +1,14 @@ -;; install package -(require-package 'yaml-mode) - -;; load yaml-mode -(require 'yaml-mode) - -;; don't override C-j -(eval-after-load "yaml-mode" - '(define-key yaml-mode-map (kbd "C-j") nil)) - -;; disable electric indent -(add-hook 'yaml-mode-hook - (lambda () (setq-local electric-indent-mode nil))) - -;; ansible group_vars and host_vars -(add-to-list 'auto-mode-alist '("/\\(group\\|host\\)_vars/" . yaml-mode)) +(use-package yaml-mode + :mode + ;; ansible group_vars and host_vars + ("/\\(group\\|host\\)_vars/" . yaml-mode) + + :config + ;; don't override C-j + (define-key yaml-mode-map (kbd "C-j") nil) + + ;; disable electric indent + (add-hook 'yaml-mode-hook + (lambda () (setq-local electric-indent-mode nil)))) (provide 'init-yaml-mode) |