emacs.d/modules/jenga-prelude.el

61 lines
2.2 KiB
EmacsLisp

;;;; Company configuration.
(use-package company
:ensure t
:defer t
:init (global-company-mode)
:config
(progn
(add-to-list 'completion-styles 'initials t)
(bind-key "M-<tab>" #'company-complete company-mode-map)
(setq company-tooltip-align-annotations t
tab-always-indent 'complete)
(setq company-dabbrev-downcase nil))
:diminish company-mode)
;;;; Evil mode configuration.
(use-package evil
:ensure t
:init ;; tweak evil's configuration before loading it
(setq evil-search-module 'evil-search
evil-ex-complete-emacs-commands nil
evil-vsplit-window-right t
evil-split-window-below t
evil-shift-round nil
evil-want-C-u-scroll t)
:config ;; tweak evil after loading it
(evil-mode)
(setq evil-want-C-u-scroll t)
(eval-after-load "evil-maps"
;; Unset Evil's "M-." keymap so that TAGS definitions can be followed.
(define-key evil-normal-state-map "\M-." nil)))
(use-package undo-tree
:ensure t)
;;;; Heml mode configuration.
(use-package helm
:requires helm-config
:init
(helm-mode 1)
(helm-autoresize-mode 1)
:bind
("<tab>" . helm-execute-persistent-action) ; rebind tab to run persistent action
("C-i" . helm-execute-persistent-action) ; make TAB work in terminal
("C-z" . helm-select-action) ; list actions using C-z
:config
(setq helm-autoresize-max-height 0
helm-autoresize-min-height 20
helm-split-window-in-side-p t ; Open helm buffer inside current window, not occupy whole other window
helm-move-to-line-cycle-in-source t ; Move to end or beginning of source when reaching top or bottom of source.
helm-ff-search-library-in-sexp t ; Search for library in `require' and `declare-function' sexp.
helm-scroll-amount 8 ; Scroll 8 lines other window using M-<next>/M-<prior>
helm-ff-file-name-history-use-recentf t
helm-echo-input-in-header-line t)
(global-unset-key (kbd "C-x c"))
(when (executable-find "firefox")
(setq helm-google-suggest-use-curl-p t))
:bind
("C-c h" . helm-command-prefix))
(provide 'jenga-prelude)