dotfiles/.config/emacs/init.el
2025-06-04 22:44:27 +03:00

99 lines
2.8 KiB
EmacsLisp

(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
(use-package emacs
:straight (:type built-in)
:bind (("C-z" . nil)
("C-z i" . (lambda () (interactive) (find-file user-init-file))))
:config
(defalias 'yes-or-no-p 'y-or-n-p)
(put 'dired-find-alternate-file 'disabled nil)
(set-default-file-modes #o750)
(windmove-default-keybindings 'super)
:custom
(column-number-mode t)
(inhibit-startup-screen t)
(global-auto-revert-mode t)
(global-auto-revert-non-file-buffers t))
(use-package better-defaults
:straight (:host nil :repo "https://git.sr.ht/~technomancy/better-defaults"))
(use-package magit
:bind (("C-x g" . magit-status)
("C-x M-g" . magit-list-repositories)))
(use-package nyan-mode
:init
(nyan-mode 1)
:custom
(nyan-animate-nyancat t)
(nyan-wavy-trail t))
(use-package mozc
:bind (("C-c m" . mozc-mode)))
(use-package material-theme
:config
(load-theme 'material t))
(use-package windmove
:straight (:type built-in)
:bind (("s-w" . windmove-up)
("s-a" . windmove-left)
("s-s" . windmove-down)
("s-d" . windmove-right)))
(use-package counsel
:bind (("C-s" . swiper-isearch)
("M-x" . counsel-M-x)
("M-y" . counsel-yank-pop)
("<f1> f" . counsel-describe-function)
("<f1> v" . counsel-describe-variable)
("C-x C-f" . counsel-find-file)
("C-x b" . ivy-switch-buffer)
("C-x d" . counsel-dired)
("C-c u" . counsel-unicode-char)
("C-c v" . ivy-push-view)
("C-c V" . ivy-pop-view)
:map ivy-minibuffer-map
("C-<return>" . ivy-immediate-done))
:config
(setq ivy-re-builders-alist
'((t . ivy--regex-ignore-order)))
:custom
(ivy-mode 1)
(ivy-count-format "(%d/%d) "))
(use-package company
:init (global-company-mode))
(use-package lsp-mode
:init
(setq lsp-keymap-prefix "C-z l"))
(use-package flymake
:straight (:type built-in)
:bind (:map flymake-mode-map
("C-c C-n" . flymake-goto-next-error)
("C-c C-p" . flymake-goto-prev-error)
("C-c C-l" . flymake-show-diagnostics-buffer)))
(use-package python
:bind (:map python-mode-map
("C-c C-p" . nil)
("C-c C-l" . nil))
:hook ((python-mode . lsp)))