feat(emacs): Basic emacs setup

This commit is contained in:
js0ny 2025-01-28 14:27:46 +00:00
parent 2346c13564
commit 6edb5d9e90
7 changed files with 134 additions and 0 deletions

View file

@ -0,0 +1,15 @@
;;; init-basic.el
;; Disable startup message
(setq inhibit-startup-message t)
;; Use line number by default
(global-display-line-numbers-mode 1)
;; Vim-like relativenumber
(setq display-line-numbers-type 'relative)
;; https://book.emacs-china.org/#orgcfd105e Open with Emacs
(server-mode 1)
;; Export module
(provide 'init-basic)

View file

@ -0,0 +1,26 @@
;;; init-evil.el
;; Evil - Extensible VI Layer
(defvar evil-colemak-state-map (make-sparse-keymap))
(use-package evil
:ensure t
:config
(evil-mode 1)
; Colemak Vim Arrow
(evil-define-key '(normal visual operator) 'global
"n" 'evil-next-line
"e" 'evil-previous-line
"i" 'evil-forward-char
"l" 'evil-insert
"L" 'evil-insert-0-line
"k" 'evil-search-next
"K" 'evil-search-previous
"j" 'evil-forward-word-end
"J" 'evil-forward-WORD-end
"N" '(lambda () (interactive) (evil-next-line 5)) ; 5n
"E" '(lambda () (interactive) (evil-previous-line 5)) ; 5e
))
(provide 'init-evil)

View file

@ -0,0 +1,11 @@
;;; init-keymaps.el
;; Once this is defined, `M-x open-init-file` will open this file
(defun open-init-file()
(interactive) ;; Mark function as `interactive` that allows user to access by M-x open-init-file RET
(find-file "~/.emacs.d/init.el"))
(defun reload-init()
(interactive)
(load-file "~/.emacs.d/init.el"))
(provide 'init-keymaps)

View file

@ -0,0 +1,22 @@
;;; init-package.el
;; Manual Install Packages (plugins): Options > Manage Emacs Packages (Don't use this)
(global-company-mode 1) ; Enable company
;; Ensure use-package is installed (use-package: lazy load plugin manager)
(unless (package-install 'use-package)
(package-refresh-contents)
(package-install 'use-package))
;; Plugins Here
;; Company - Complete Anything
(use-package company
:ensure t
:config
(global-company-mode 1)
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous))
(provide 'init-package)