nixos/home/emacs/modules/custom-defaults-config.el

50 lines
1.5 KiB
EmacsLisp

;;; custom-defaults-config.el -*- lexical-binding: t; -*-
;;; Code:
(setq load-prefer-newer t
indent-tabs-mode nil
global-auto-revert-non-file-buffers t
dired-auto-revert-buffer t
dired-dwim-target t
tab-always-indent 'complete
completion-cycle-threshold 3
completions-detailed t
xref-show-definitions-function #'xref-show-definitions-completing-read
kill-do-not-save-duplicates t
auto-window-vscroll nil
fast-but-imprecise-scrolling t
scroll-conservatively 101
scroll-margin 0
scroll-preserve-screen-position 1)
(global-auto-revert-mode +1)
(delete-selection-mode)
;; define a key to define the word at point.
(keymap-set global-map "M-#" #'dictionary-lookup-definition)
;; define key to open recent files
(keymap-set global-map "C-c r" #'recentf)
;; turn on spell checking, if available.
(with-eval-after-load 'ispell
(when (executable-find ispell-program-name)
(add-hook 'text-mode-hook #'flyspell-mode)
(add-hook 'prog-mode-hook #'flyspell-prog-mode)))
;; window movement hydra (TODO)
(when (require 'hydra nil :noerror)
(defhydra window (global-map "C-c w")
"Window movement"
("u" winner-undo)
("r" winner-redo)
("n" windmove-down)
("p" windmove-up)
("b" windmove-left)
("f" windmove-right)))
;; Make shebang (#!) file executable when saved
(add-hook 'after-save-hook #'executable-make-buffer-file-executable-if-script-p)
(provide 'custom-defaults-config)