Move some things around, theme changes etc
This commit is contained in:
parent
f84d424908
commit
29348fd3a9
@ -65,13 +65,10 @@
|
|||||||
(cond
|
(cond
|
||||||
((find-font (font-spec :name "Maple Mono"))
|
((find-font (font-spec :name "Maple Mono"))
|
||||||
(set-frame-font "Maple Mono 12" nil t)))
|
(set-frame-font "Maple Mono 12" nil t)))
|
||||||
|
;; (load-theme 'modus-vivendi t)
|
||||||
(load-theme 'modus-vivendi t)
|
|
||||||
|
|
||||||
;;; File History, Saving and Reverting
|
;;; File History, Saving and Reverting
|
||||||
|
|
||||||
;; Auto-refresh buffers when files on disk change.
|
|
||||||
(global-auto-revert-mode t)
|
|
||||||
;; Place backups in a separate folder.
|
;; Place backups in a separate folder.
|
||||||
(setq backup-directory-alist `(("." . "~/.config/emacs/saves")))
|
(setq backup-directory-alist `(("." . "~/.config/emacs/saves")))
|
||||||
(setq auto-save-file-name-transforms `((".*" "~/.config/emacs/saves/" t)))
|
(setq auto-save-file-name-transforms `((".*" "~/.config/emacs/saves/" t)))
|
||||||
@ -84,6 +81,9 @@
|
|||||||
(setq recentf-max-menu-items 15)
|
(setq recentf-max-menu-items 15)
|
||||||
(setq recentf-auto-cleanup (if (daemonp) 300 'never))
|
(setq recentf-auto-cleanup (if (daemonp) 300 'never))
|
||||||
|
|
||||||
|
;; recentf maintains a list of recently accessed files
|
||||||
|
(add-hook 'after-init-hook #'(lambda() (let ((inhibit-message t)) (recentf-mode 1))))
|
||||||
|
|
||||||
;; `savehist-mode' is an Emacs feature that preserves the minibuffer history
|
;; `savehist-mode' is an Emacs feature that preserves the minibuffer history
|
||||||
;; between sessions.
|
;; between sessions.
|
||||||
(setq history-length 300)
|
(setq history-length 300)
|
||||||
@ -94,6 +94,16 @@
|
|||||||
mark-ring global-mark-ring ; marks
|
mark-ring global-mark-ring ; marks
|
||||||
search-ring regexp-search-ring)) ; searches
|
search-ring regexp-search-ring)) ; searches
|
||||||
|
|
||||||
|
;; savehist is an Emacs feature that preserves the minibuffer history between sessions
|
||||||
|
(add-hook 'after-init-hook #'savehist-mode)
|
||||||
|
|
||||||
|
;; save-place-mode enables Emacs to remember the last location within a file
|
||||||
|
(add-hook 'after-init-hook #'save-place-mode)
|
||||||
|
|
||||||
|
;; Auto-revert in Emacs is a feature that automatically updates buffer to reflect
|
||||||
|
;; changes on disk
|
||||||
|
(add-hook 'after-init-hook #'global-auto-revert-mode)
|
||||||
|
|
||||||
;; Enable `auto-save-mode' to prevent data loss. Use `recover-file' or
|
;; Enable `auto-save-mode' to prevent data loss. Use `recover-file' or
|
||||||
;; `recover-session' to restore unsaved changes.
|
;; `recover-session' to restore unsaved changes.
|
||||||
(setq auto-save-default t)
|
(setq auto-save-default t)
|
||||||
@ -102,20 +112,10 @@
|
|||||||
(setq auto-save-visited-interval 10)
|
(setq auto-save-visited-interval 10)
|
||||||
(auto-save-visited-mode 1)
|
(auto-save-visited-mode 1)
|
||||||
|
|
||||||
;; Auto-revert in Emacs is a feature that automatically updates buffer to reflect
|
;; Auto-refresh buffers when files on disk change.
|
||||||
;; changes on disk
|
(global-auto-revert-mode t)
|
||||||
(add-hook 'after-init-hook #'global-auto-revert-mode)
|
|
||||||
|
|
||||||
;; recentf maintains a list of recently accessed files
|
;;; Minor Modes
|
||||||
(add-hook 'after-init-hook #'(lambda()
|
|
||||||
(let ((inhibit-message t))
|
|
||||||
(recentf-mode 1))))
|
|
||||||
|
|
||||||
;; savehist is an Emacs feature that preserves the minibuffer history between sessions
|
|
||||||
(add-hook 'after-init-hook #'savehist-mode)
|
|
||||||
|
|
||||||
;; save-place-mode enables Emacs to remember the last location within a file
|
|
||||||
(add-hook 'after-init-hook #'save-place-mode)
|
|
||||||
|
|
||||||
(define-minor-mode clean-trailing-whitespace-mode
|
(define-minor-mode clean-trailing-whitespace-mode
|
||||||
"Tidy up trailing whitespace with `delete-trailing-whitespace' before saving."
|
"Tidy up trailing whitespace with `delete-trailing-whitespace' before saving."
|
||||||
@ -194,19 +194,30 @@
|
|||||||
(interactive "r")
|
(interactive "r")
|
||||||
(shell-command (buffer-substring-no-properties start end)))
|
(shell-command (buffer-substring-no-properties start end)))
|
||||||
|
|
||||||
;; TODO: make it work with defaults of Linux/macOS
|
|
||||||
(defun ext-terminal-in-workdir ()
|
(defun ext-terminal-in-workdir ()
|
||||||
"Open an external terminal emulator in working directory."
|
"Open an external terminal emulator in working directory."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
(cond
|
||||||
|
((eq system-type 'windows-nt)
|
||||||
(call-process-shell-command (concat "wt -d " default-directory) nil 0))
|
(call-process-shell-command (concat "wt -d " default-directory) nil 0))
|
||||||
|
((eq system-type 'darwin)
|
||||||
|
(shell-command (concat "open -a iTerm " (shell-quote-argument (expand-file-name default-directory)))))
|
||||||
|
((eq system-type 'gnu/linux)
|
||||||
|
(let ((process-connection-type nil)) (start-process "" nil "x-terminal-emulator" (concat "--working-directory=" default-directory))))))
|
||||||
|
|
||||||
;; TODO: make it work with defaults of Linux/macOS
|
|
||||||
(defun ext-file-browser-in-workdir ()
|
(defun ext-file-browser-in-workdir ()
|
||||||
"Open the current file's directory however the OS would."
|
"Open the current file's directory however the OS would."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if default-directory
|
(cond
|
||||||
(shell-command (concat "start " (expand-file-name default-directory)))
|
((eq system-type 'windows-nt)
|
||||||
(error "No `default-directory' to open")))
|
(shell-command (concat "start " (expand-file-name default-directory))))
|
||||||
|
((eq system-type 'darwin)
|
||||||
|
(shell-command (concat "open " (expand-file-name default-directory))))
|
||||||
|
((eq system-type 'gnu/linux)
|
||||||
|
(shell-command (concat "xdg-open " (expand-file-name default-directory))))))
|
||||||
|
|
||||||
|
;; TODO: Look at using the EAT package for terminal things
|
||||||
|
;; https://codeberg.org/akib/emacs-eat
|
||||||
|
|
||||||
(defun insert-current-time ()
|
(defun insert-current-time ()
|
||||||
"Insert the current time H:M:S."
|
"Insert the current time H:M:S."
|
||||||
@ -220,11 +231,6 @@
|
|||||||
"Insert the current ISO 8601 date (with time res of seconds)."
|
"Insert the current ISO 8601 date (with time res of seconds)."
|
||||||
(insert (format-time-string "%Y-%m-%d %H:%M:%S")))
|
(insert (format-time-string "%Y-%m-%d %H:%M:%S")))
|
||||||
|
|
||||||
;; Ediff
|
|
||||||
;; Configure Ediff to use a single frame and split windows horizontally
|
|
||||||
(setq ediff-window-setup-function 'ediff-setup-windows-plain
|
|
||||||
ediff-split-window-function 'split-window-horizontally)
|
|
||||||
|
|
||||||
;;; Backwards kill with C-w
|
;;; Backwards kill with C-w
|
||||||
(defadvice kill-region (before unix-werase activate compile)
|
(defadvice kill-region (before unix-werase activate compile)
|
||||||
"When called interactively with no active region, delete a single word backwards instead."
|
"When called interactively with no active region, delete a single word backwards instead."
|
||||||
@ -347,34 +353,64 @@
|
|||||||
:straight `(el-patch :type git :host github :repo "Somelauw/evil-markdown")
|
:straight `(el-patch :type git :host github :repo "Somelauw/evil-markdown")
|
||||||
:after evil)
|
:after evil)
|
||||||
|
|
||||||
;;; Evil keybinds
|
;; Custom Evil Keybinds
|
||||||
|
;; Evil Guide: https://github.com/noctuid/evil-guide?tab=readme-ov-file#keybindings-and-states
|
||||||
|
|
||||||
|
;; Leader (prefix key)
|
||||||
(evil-set-leader nil (kbd "SPC"))
|
(evil-set-leader nil (kbd "SPC"))
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> :") 'execute-extended-command)
|
|
||||||
|
;; Eval
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> :") 'eval-expression)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> p") 'execute-extended-command)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> e") 'eval-last-sexp)
|
(evil-define-key 'normal 'global (kbd "<leader> e") 'eval-last-sexp)
|
||||||
(evil-define-key 'visual 'global (kbd "<leader> e") 'eval-region)
|
(evil-define-key 'visual 'global (kbd "<leader> e") 'eval-region)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> p") 'eval-print-last-sexp)
|
(evil-define-key 'normal 'global (kbd "<leader> E") 'eval-print-last-sexp)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> E") 'eval-expression)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> b") 'eval-buffer)
|
;; Buffer Management
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> w") 'save-buffer)
|
(evil-define-key 'normal 'global (kbd "<leader> w") 'save-buffer)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> W") 'whitespace-mode)
|
(evil-define-key 'normal 'global (kbd "<leader> l") 'eval-buffer)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> b") 'list-buffers)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> k") 'kill-buffer)
|
(evil-define-key 'normal 'global (kbd "<leader> k") 'kill-buffer)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> f") 'ffap)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> F") 'find-file)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> d") 'evil-delete-buffer)
|
(evil-define-key 'normal 'global (kbd "<leader> d") 'evil-delete-buffer)
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> K") 'dired-jump)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> o") 'occur)
|
;; Toggles
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> B") 'bookmark-jump)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> g") 'magit-status)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> r") 'replace-regexp)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> R") 'recentf)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> P") 'yank-from-kill-ring)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> x") ctl-x-map)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> O") 'ext-file-browser-in-workdir)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> T") 'ext-terminal-in-workdir)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader> A") 'abbrev-mode)
|
(evil-define-key 'normal 'global (kbd "<leader> A") 'abbrev-mode)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> W") 'whitespace-mode)
|
||||||
|
|
||||||
|
;; Search and replace (interactive)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> o") 'occur)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> r") 'replace-regexp)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> P") 'yank-from-kill-ring)
|
||||||
|
|
||||||
|
;; Running external stuff
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> c") 'compile)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> !") 'shell-command)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> &") 'async-shell-command)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> g") 'magit-status)
|
||||||
|
|
||||||
|
;; Jumping places
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> f") 'ffap)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> K") 'dired-jump)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> B") 'bookmark-jump)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> R") 'recentf)
|
||||||
(evil-define-key 'normal 'global (kbd "C-c i") (lambda () (interactive) (find-file user-init-file)))
|
(evil-define-key 'normal 'global (kbd "C-c i") (lambda () (interactive) (find-file user-init-file)))
|
||||||
|
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> O") 'ext-file-browser-in-workdir)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> T") 'x-open-in-terminal)
|
||||||
|
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> x") ctl-x-map)
|
||||||
|
;; Extra packages
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> s") 'yas-insert-snippet)
|
||||||
|
(evil-define-key 'normal 'global (kbd "<leader> F") 'format-all-region-or-buffer)
|
||||||
|
|
||||||
|
;; Custom Ex commands
|
||||||
|
(evil-ex-define-cmd "Fo[rmat]" 'format-all-region-or-buffer)
|
||||||
;; end evil
|
;; end evil
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c C-y") 'yank-from-kill-ring)
|
||||||
|
;; TODO: use general to setup more specific keybinds
|
||||||
|
;; https://github.com/noctuid/general.el?tab=readme-ov-file
|
||||||
|
|
||||||
;;; Easy find init file
|
;;; Easy find init file
|
||||||
(set-register ?i (cons 'file user-init-file))
|
(set-register ?i (cons 'file user-init-file))
|
||||||
|
|
||||||
@ -419,7 +455,8 @@
|
|||||||
(use-package doom-themes
|
(use-package doom-themes
|
||||||
:straight t
|
:straight t
|
||||||
:config
|
:config
|
||||||
(load-theme 'doom-ir-black t))
|
(load-theme 'doom-badger t))
|
||||||
|
;; (load-theme 'doom-ir-black t))
|
||||||
|
|
||||||
;; Highlights TODOs and other configured keywords in buffer
|
;; Highlights TODOs and other configured keywords in buffer
|
||||||
;; https://github.com/tarsius/hl-todo
|
;; https://github.com/tarsius/hl-todo
|
||||||
@ -543,12 +580,12 @@
|
|||||||
(shell-mode . corfu-mode)
|
(shell-mode . corfu-mode)
|
||||||
(eshell-mode . corfu-mode))
|
(eshell-mode . corfu-mode))
|
||||||
:custom
|
:custom
|
||||||
(corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
|
;; (corfu-auto t)
|
||||||
(corfu-auto t)
|
;; (corfu-auto-prefix 1)
|
||||||
(corfu-preview-current nil) ;; Disable current candidate preview
|
;; (corfu-auto-delay 0.2)
|
||||||
(corfu-preselect 'prompt) ;; Preselect the prompt
|
;; (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
|
||||||
(corfu-auto-prefix 1)
|
;; (corfu-preview-current nil) ;; Disable current candidate preview
|
||||||
(corfu-auto-delay 0.2)
|
;; (corfu-preselect 'prompt) ;; Preselect the prompt
|
||||||
;; (corfu-quit-at-boundary nil) ;; Never quit at completion boundary
|
;; (corfu-quit-at-boundary nil) ;; Never quit at completion boundary
|
||||||
;; (corfu-quit-no-match nil) ;; Never quit, even if there is no match
|
;; (corfu-quit-no-match nil) ;; Never quit, even if there is no match
|
||||||
;; (corfu-on-exact-match nil) ;; Configure handling of exact matches
|
;; (corfu-on-exact-match nil) ;; Configure handling of exact matches
|
||||||
@ -557,7 +594,6 @@
|
|||||||
;; Disable Ispell completion function. As an alternative try `cape-dict'.
|
;; Disable Ispell completion function. As an alternative try `cape-dict'.
|
||||||
(text-mode-ispell-word-completion nil)
|
(text-mode-ispell-word-completion nil)
|
||||||
(tab-always-indent 'complete)
|
(tab-always-indent 'complete)
|
||||||
|
|
||||||
:init
|
:init
|
||||||
(global-corfu-mode)
|
(global-corfu-mode)
|
||||||
(corfu-history-mode)
|
(corfu-history-mode)
|
||||||
@ -682,7 +718,8 @@
|
|||||||
(python-ts-mode . lsp-deferred))
|
(python-ts-mode . lsp-deferred))
|
||||||
:commands (lsp lsp-deferred))
|
:commands (lsp lsp-deferred))
|
||||||
|
|
||||||
;;; Manual tool based code formatting / linting
|
;;; External code formatting tool integration (format-all)
|
||||||
|
;; https://github.com/lassik/emacs-format-all-the-code
|
||||||
(use-package format-all
|
(use-package format-all
|
||||||
:straight t)
|
:straight t)
|
||||||
|
|
||||||
@ -800,4 +837,34 @@
|
|||||||
;; (setq user-emacs-directory "C:/Users/user/.emacs")
|
;; (setq user-emacs-directory "C:/Users/user/.emacs")
|
||||||
;; (load user-init-file)
|
;; (load user-init-file)
|
||||||
|
|
||||||
|
;; xah-lee functions
|
||||||
|
;; http://xahlee.info/index.html
|
||||||
|
|
||||||
|
(defun x-open-in-vscode ()
|
||||||
|
"Open current file or dir in vscode."
|
||||||
|
(interactive)
|
||||||
|
(let ((xpath (if buffer-file-name buffer-file-name (expand-file-name default-directory))))
|
||||||
|
(message "path is %s" xpath)
|
||||||
|
(cond
|
||||||
|
((eq system-type 'darwin)
|
||||||
|
(shell-command (format "open -a Visual\\ Studio\\ Code.app %s" (shell-quote-argument xpath))))
|
||||||
|
((eq system-type 'windows-nt)
|
||||||
|
(shell-command (format "code.cmd %s" (shell-quote-argument xpath))))
|
||||||
|
((eq system-type 'gnu/linux)
|
||||||
|
(shell-command (format "code %s" (shell-quote-argument xpath)))))))
|
||||||
|
|
||||||
|
(defun x-open-in-terminal ()
|
||||||
|
"Open the current dir in a new terminal window."
|
||||||
|
(interactive)
|
||||||
|
(cond
|
||||||
|
((eq system-type 'windows-nt)
|
||||||
|
((string-equal xah-fly-mswin-terminal "wt") (shell-command (format "wt -d \"%s\"" default-directory))))
|
||||||
|
((eq system-type 'darwin)
|
||||||
|
(shell-command (concat "open -a iTerm " (shell-quote-argument (expand-file-name default-directory)))))
|
||||||
|
((eq system-type 'gnu/linux)
|
||||||
|
(let ((process-connection-type nil)) (start-process "" nil "x-terminal-emulator" (concat "--working-directory=" default-directory))))
|
||||||
|
((eq system-type 'berkeley-unix)
|
||||||
|
(let ((process-connection-type nil)) (start-process "" nil "x-terminal-emulator" (concat "--working-directory=" default-directory))))))
|
||||||
|
|
||||||
|
|
||||||
;;; init.el ends here
|
;;; init.el ends here
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user