Update
This commit is contained in:
@@ -6,13 +6,9 @@
|
||||
;; :config
|
||||
;; (require 'smartparens-config))
|
||||
|
||||
|
||||
(setq electric-pair-inhibit-predicate 'electric-pair-conservative-inhibit)
|
||||
(electric-pair-mode t)
|
||||
|
||||
(use-package ace-window
|
||||
:hook (ace-window-mode . ace-window-posframe-mode)
|
||||
:bind ("M-o" . ace-window))
|
||||
|
||||
;; Yasnippet settings
|
||||
(use-package yasnippet
|
||||
:ensure t
|
||||
@@ -39,5 +35,45 @@
|
||||
(setq-default abbrev-mode t)
|
||||
(setq abbrev-file-name (expand-file-name "abbrev.el" user-emacs-directory))
|
||||
|
||||
(use-package autorevert
|
||||
:ensure nil
|
||||
:diminish
|
||||
:hook (after-init . global-auto-revert-mode))
|
||||
|
||||
(use-package multiple-cursors
|
||||
:hook elpaca-after-init
|
||||
:bind (("C-c m" . multiple-cursors-hydra/body)
|
||||
("C-S-c C-S-c" . mc/edit-lines)
|
||||
("C->" . mc/mark-next-like-this)
|
||||
("C-<" . mc/mark-previous-like-this)
|
||||
("C-c C-<" . mc/mark-all-like-this)
|
||||
("C-M->" . mc/skip-to-next-like-this)
|
||||
("C-M-<" . mc/skip-to-previous-like-this)
|
||||
("s-<mouse-1>" . mc/add-cursor-on-click)
|
||||
("C-S-<mouse-1>" . mc/add-cursor-on-click)
|
||||
:map mc/keymap
|
||||
("C-|" . mc/vertical-align-with-space))
|
||||
:pretty-hydra
|
||||
((:color amaranth :quit-key ("q" "C-g"))
|
||||
("Up"
|
||||
(("p" mc/mark-previous-like-this "prev")
|
||||
("P" mc/skip-to-previous-like-this "skip")
|
||||
("M-p" mc/unmark-previous-like-this "unmark")
|
||||
("|" mc/vertical-align "align with input CHAR"))
|
||||
"Down"
|
||||
(("n" mc/mark-next-like-this "next")
|
||||
("N" mc/skip-to-next-like-this "skip")
|
||||
("M-n" mc/unmark-next-like-this "unmark"))
|
||||
"Misc"
|
||||
(("l" mc/edit-lines "edit lines" :exit t)
|
||||
("a" mc/mark-all-like-this "mark all" :exit t)
|
||||
("s" mc/mark-all-in-region-regexp "search" :exit t)
|
||||
("<mouse-1>" mc/add-cursor-on-click "click"))
|
||||
"% 2(mc/num-cursors) cursor%s(if (> (mc/num-cursors) 1) \"s\" \"\")"
|
||||
(("0" mc/insert-numbers "insert numbers" :exit t)
|
||||
("A" mc/insert-letters "insert letters" :exit t)))))
|
||||
|
||||
(use-package smart-region
|
||||
:hook (after-init . smart-region-on))
|
||||
|
||||
(provide 'init-edit)
|
||||
|
||||
6
lisp/init-god.el
Normal file
6
lisp/init-god.el
Normal file
@@ -0,0 +1,6 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package god-mode
|
||||
:bind ("<escape>" . god-local-mode))
|
||||
|
||||
(provide 'init-god)
|
||||
54
lisp/init-hydra.el
Normal file
54
lisp/init-hydra.el
Normal file
@@ -0,0 +1,54 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package hydra
|
||||
:hook ((emacs-lisp-mode . hydra-add-imenu)))
|
||||
|
||||
(use-package pretty-hydra
|
||||
:ensure (:wait t)
|
||||
:hook (emacs-lisp-mode . (lambda ()
|
||||
(add-to-list
|
||||
'imenu-generic-expression
|
||||
'("Hydras"
|
||||
"^.*(\\(pretty-hydra-define\\) \\([a-zA-Z-]+\\)"
|
||||
2))))
|
||||
:bind ("<f6>" . toggle-hydras/body)
|
||||
:init
|
||||
(with-no-warnings
|
||||
(pretty-hydra-define toggle-hydras (:color amaranth :quit-key ("q" "C-g"))
|
||||
("Basic"
|
||||
(("n" (cond ((fboundp 'display-line-numbers-mode)
|
||||
(display-line-numbers-mode (if display-line-numbers-mode -1 1)))
|
||||
((fboundp 'gblobal-linum-mode)
|
||||
(global-linum-mode (if global-linum-mode -1 1))))
|
||||
"line number"
|
||||
:toggle (or (bound-and-true-p display-line-numbers-mode)
|
||||
(bound-and-true-p global-linum-mode)))
|
||||
("e" electric-pair-mode "electric pair" :toggle t)
|
||||
("c" flyspell-mode "spell check" :toggle t)
|
||||
("s" prettify-symbols-mode "pretty symbol" :toggle t)
|
||||
("l" global-page-break-lines-mode "page break lines" :toggle t)
|
||||
("b" display-battery-mode "battery" :toggle t)
|
||||
("i" display-time-mode "time" :toggle t)
|
||||
("m" doom-modeline-mode "modern mode-line" :toggle t))
|
||||
"Highlight"
|
||||
(("h l" global-hl-line-mode "line" :toggle t)
|
||||
("h p" show-paren-mode "paren" :toggle t)
|
||||
("h w" (setq-default show-trailing-whitespace (not show-trailing-whitespace))
|
||||
"whitespace" :toggle show-trailing-whitespace)
|
||||
("h d" rainbow-delimiters-mode "delimiter" :toggle t)
|
||||
("h t" global-hl-todo-mode "todo" :toggle t))
|
||||
"Program"
|
||||
(("f" flymake-mode "flymake" :toggle t)
|
||||
("O" hs-minor-mode "hideshow" :toggle t)
|
||||
("u" subword-mode "subword" :toggle t)
|
||||
("W" which-function-mode "which function" :toggle t)
|
||||
("E" toggle-debug-on-error "debug on error" :toggle (default-value 'debug-on-error))
|
||||
("Q" toggle-debug-on-quit "debug on quit" :toggle (default-value 'debug-on-quit))
|
||||
("v" global-diff-hl-mode "gutter" :toggle t)
|
||||
("V" diff-hl-flydiff-mode "live gutter" :toggle t)
|
||||
("M" diff-hl-margin-mode "margin gutter" :toggle t)
|
||||
("D" diff-hl-dired-mode "dired gutter" :toggle t))
|
||||
))))
|
||||
|
||||
(provide 'init-hydra)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
;;; init-lsp ---
|
||||
;;; Commentary:
|
||||
;; -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package flymake)
|
||||
(use-package flymake
|
||||
:hook (prog-mode . flymake-mode))
|
||||
(use-package jsonrpc)
|
||||
|
||||
(use-package eglot
|
||||
|
||||
@@ -11,7 +11,75 @@
|
||||
:branch "dev")
|
||||
:hook (org-mode . org-indent-mode)
|
||||
:hook (org-mode . org-cdlatex-mode)
|
||||
|
||||
:pretty-hydra
|
||||
;; See `org-structure-template-alist'
|
||||
((:color blue :quit-key ("q" "C-g"))
|
||||
("Basic"
|
||||
(("a" (hot-expand "<a") "ascii")
|
||||
("c" (hot-expand "<c") "center")
|
||||
("C" (hot-expand "<C") "comment")
|
||||
("x" (hot-expand "<e") "example")
|
||||
("E" (hot-expand "<E") "export")
|
||||
("h" (hot-expand "<h") "html")
|
||||
("l" (hot-expand "<l") "latex")
|
||||
("n" (hot-expand "<n") "note")
|
||||
("o" (hot-expand "<q") "quote")
|
||||
("v" (hot-expand "<v") "verse"))
|
||||
"Head"
|
||||
(("i" (hot-expand "<i") "index")
|
||||
("A" (hot-expand "<A") "ASCII")
|
||||
("I" (hot-expand "<I") "INCLUDE")
|
||||
("H" (hot-expand "<H") "HTML")
|
||||
("L" (hot-expand "<L") "LaTeX"))
|
||||
"Source"
|
||||
(("s" (hot-expand "<s") "src")
|
||||
("e" (hot-expand "<s" "emacs-lisp") "emacs-lisp")
|
||||
("y" (hot-expand "<s" "python :results output") "python")
|
||||
("p" (hot-expand "<s" "perl") "perl")
|
||||
("w" (hot-expand "<s" "powershell") "powershell")
|
||||
("r" (hot-expand "<s" "ruby") "ruby")
|
||||
("S" (hot-expand "<s" "sh") "sh")
|
||||
("g" (hot-expand "<s" "go :imports '\(\"fmt\"\)") "golang"))
|
||||
"Misc"
|
||||
(("m" (hot-expand "<s" "mermaid :file chart.png") "mermaid")
|
||||
("u" (hot-expand "<s" "plantuml :file chart.png") "plantuml")
|
||||
("Y" (hot-expand "<s" "ipython :session :exports both :results raw drawer\n$0") "ipython")
|
||||
("P" (progn
|
||||
(insert "#+HEADERS: :results output :exports both :shebang \"#!/usr/bin/env perl\"\n")
|
||||
(hot-expand "<s" "perl")) "Perl tangled")
|
||||
("<" self-insert-command "ins"))))
|
||||
:bind (:map org-mode-map
|
||||
("<" . (lambda ()
|
||||
"Insert org template."
|
||||
(interactive)
|
||||
(if (or (region-active-p) (looking-back "^\s*" 1))
|
||||
(org-hydra/body)
|
||||
(self-insert-command 1)))))
|
||||
:config
|
||||
;; For hydra
|
||||
(defun hot-expand (str &optional mod)
|
||||
"Expand org template.
|
||||
|
||||
STR is a structure template string recognised by org like <s. MOD is a
|
||||
string with additional parameters to add the begin line of the
|
||||
structure element. HEADER string includes more parameters that are
|
||||
prepended to the element after the #+HEADER: tag."
|
||||
(let (text)
|
||||
(when (region-active-p)
|
||||
(setq text (buffer-substring (region-beginning) (region-end)))
|
||||
(delete-region (region-beginning) (region-end)))
|
||||
(insert str)
|
||||
(if (fboundp 'org-try-structure-completion)
|
||||
(org-try-structure-completion) ; < org 9
|
||||
(progn
|
||||
;; New template expansion since org 9
|
||||
(require 'org-tempo nil t)
|
||||
(org-tempo-complete-tag)))
|
||||
(when mod (insert mod) (forward-line))
|
||||
(when text (insert text))))
|
||||
|
||||
|
||||
;; (org-capture-init)
|
||||
(add-to-list 'org-modules 'org-habit)
|
||||
(setq org-directory "~/org/")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;; -*- lexical-binding: t -*-
|
||||
|
||||
(setq idle-update-delay 1.0)
|
||||
;; (setq idle-update-delay 1.0)
|
||||
|
||||
(setq-default cursor-in-non-selected-windows nil)
|
||||
(setq highlight-nonselected-windows nil)
|
||||
@@ -73,9 +73,6 @@
|
||||
(use-package default-text-scale
|
||||
:hook (elpaca-after-init . default-text-scale-mode)
|
||||
:bind (:map default-text-scale-mode-map
|
||||
("s-=" . default-text-scale-increase)
|
||||
("s--" . default-text-scale-decrease)
|
||||
("s-0" . default-text-scale-reset)
|
||||
("C-s-=" . default-text-scale-increase)
|
||||
("C-s--" . default-text-scale-decrease)
|
||||
("C-s-0" . default-text-scale-reset)))
|
||||
|
||||
59
lisp/init-window.el
Normal file
59
lisp/init-window.el
Normal file
@@ -0,0 +1,59 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
;; Restore old window configurations
|
||||
|
||||
(use-package winner
|
||||
:ensure nil
|
||||
:commands (winner-undo winner-redo)
|
||||
:hook elpaca-after-init
|
||||
:init (setq winner-boring-buffers '("*Completions*"
|
||||
"*Compile-Log*"
|
||||
"*inferior-lisp*"
|
||||
"*Fuzzy Completions*"
|
||||
"*Apropos*"
|
||||
"*Help*"
|
||||
"*cvs*"
|
||||
"*Buffer List*"
|
||||
"*Ibuffer*"
|
||||
"*esh command on file*")))
|
||||
|
||||
(use-package ace-window
|
||||
:hook (emacs-startup . ace-window-display-mode)
|
||||
:bind (([remap other-window] . ace-window)
|
||||
("C-c C-w" . ace-window-hydra/body))
|
||||
:pretty-hydra
|
||||
(
|
||||
;; (:title (pretty-hydra-title "Window Management" 'faicon "nf-fa-th")
|
||||
;; :foreign-keys warn :quit-key ("q" "C-g"))
|
||||
("Actions"
|
||||
(("TAB" other-window "switch")
|
||||
("x" ace-delete-window "delete")
|
||||
("X" ace-delete-other-windows "delete other" :exit t)
|
||||
("s" ace-swap-window "swap")
|
||||
("a" ace-select-window "select" :exit t)
|
||||
("m" toggle-frame-maximized "maximize" :exit t)
|
||||
("u" toggle-frame-fullscreen "fullscreen" :exit t))
|
||||
"Resize"
|
||||
(("h" shrink-window-horizontally "←")
|
||||
("j" enlarge-window "↓")
|
||||
("k" shrink-window "↑")
|
||||
("l" enlarge-window-horizontally "→")
|
||||
("n" balance-windows "balance"))
|
||||
"Split"
|
||||
(("r" split-window-right "horizontally")
|
||||
("R" split-window-horizontally-instead "horizontally instead")
|
||||
("v" split-window-below "vertically")
|
||||
("V" split-window-vertically-instead "vertically instead")
|
||||
("t" toggle-window-split "toggle"))
|
||||
"Zoom"
|
||||
(("+" text-scale-increase "in")
|
||||
("=" text-scale-increase "in")
|
||||
("-" text-scale-decrease "out")
|
||||
("0" (text-scale-increase 0) "reset"))
|
||||
"Misc"
|
||||
(("o" set-frame-font "frame font")
|
||||
("f" make-frame-command "new frame")
|
||||
("d" delete-frame "delete frame")
|
||||
("<left>" winner-undo "winner undo")
|
||||
("<right>" winner-redo "winner redo")))))
|
||||
|
||||
(provide 'init-window)
|
||||
Reference in New Issue
Block a user