feat(emacs): Snippets loading and writing setup

This commit is contained in:
js0ny 2025-04-20 00:05:36 +01:00
parent d0f1044013
commit 31fde92975
9 changed files with 61 additions and 12 deletions

View file

@ -1,6 +1,6 @@
# -*- mode: snippet -*- # -*- mode: snippet -*-
# name: align-math # name: align-math
# key: BAL # key: ali
# expand-env: ((yas-indent-line 'fixed)) # expand-env: ((yas-indent-line 'fixed))
# -- # --
\\begin{align*} \\begin{align*}

View file

@ -42,6 +42,7 @@
(require 'init-file) (require 'init-file)
(require 'init-edit) (require 'init-edit)
(require 'init-calendar) (require 'init-calendar)
(require 'init-writer)
(require 'init-org) (require 'init-org)
(require 'init-markdown) (require 'init-markdown)
(require 'init-latex) (require 'init-latex)

View file

@ -82,7 +82,9 @@
(lambda (orig-fn &rest args) (lambda (orig-fn &rest args)
(let ((inhibit-field-text-motion t)) ;; 禁止字段自动换行 (let ((inhibit-field-text-motion t)) ;; 禁止字段自动换行
(apply orig-fn args)))) (apply orig-fn args))))
(setq yas-snippet-dirs '("~/.dotfiles/tools/doom/snippets/")) ;; (setq yas-snippet-dirs '("~/.dotfiles/tools/doom/snippets/"))
(add-to-list 'yas-snippet-dirs "~/.dotfiles/tools/doom/snippets/" t)
(yas-reload-all) (yas-reload-all)
) )

View file

@ -7,5 +7,26 @@
(kbd "zL") #'texfrag-document) (kbd "zL") #'texfrag-document)
:hook (markdown-mode . texfrag-mode)) :hook (markdown-mode . texfrag-mode))
(use-package laas
:hook (
(LaTeX-mode . laas-mode)
(org-mode . laas-mode))
:config ; do whatever here
(aas-set-snippets 'laas-mode
;; set condition!
:cond #'texmathp ; expand only while in math
"nabl" "\\nabla"
"ppart" (lambda () (interactive)
(yas-expand-snippet "\\frac{\\partial $2}{\\partial $1} $0"))
;; bind to functions!
"Sum" (lambda () (interactive)
(yas-expand-snippet "\\sum_{$1}^{$2} $0"))
"Span" (lambda () (interactive)
(yas-expand-snippet "\\Span($1)$0"))
;; add accent snippets
:cond #'laas-object-on-left-condition
"qq" (lambda () (interactive) (laas-wrap-previous-object "sqrt")))
)
(provide 'init-latex) (provide 'init-latex)
;;; init-latex.el ends ;;; init-latex.el ends

View file

@ -15,7 +15,7 @@
(org-display-remote-inline-images 'cache) ; 预览网络图片 (org-display-remote-inline-images 'cache) ; 预览网络图片
;; Use LaTeX rendering ;; Use LaTeX rendering
(org-startup-with-latex-preview nil) ;; (org-startup-with-latex-preview nil)
(org-image-actual-width 600) (org-image-actual-width 600)
;; Conceal on markup markers ;; Conceal on markup markers
(org-hide-emphasis-markers t) (org-hide-emphasis-markers t)
@ -42,7 +42,7 @@
("/" (italic :foreground "green")) ("/" (italic :foreground "green"))
("_" underline) ("_" underline)
("=" (org-verbatim verbatim :background "maroon" :foreground "white")) ("=" (org-verbatim verbatim :background "maroon" :foreground "white"))
("~" (org-code verbatim :background "deep sky blue" :foreground "MidnightBlue")) ("~" (org-code verbatim :background "maroon" :foreground "white"))
("+" (:strike-through t)))) ("+" (:strike-through t))))
(dolist (face '((org-level-1 . 1.6) (dolist (face '((org-level-1 . 1.6)
@ -53,8 +53,7 @@
(org-level-6 . 1.0) (org-level-6 . 1.0)
(org-level-7 . 1.0) (org-level-7 . 1.0)
(org-level-8 . 1.0))) (org-level-8 . 1.0)))
(set-face-attribute (car face) nil :height (cdr face))) (set-face-attribute (car face) nil :height (cdr face))))
)
@ -71,6 +70,12 @@
(setq org-preview-latex-default-process 'dvisvgm) (setq org-preview-latex-default-process 'dvisvgm)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 0.8)) (setq org-format-latex-options (plist-put org-format-latex-options :scale 0.8))
;; org-appear: Show hidden emphasis markers
;; Just like Obsidian
(use-package org-appear
:hook
(org-mode . org-appear-mode))
(use-package org-latex-impatient (use-package org-latex-impatient
:defer t :defer t
@ -125,9 +130,9 @@
(use-package org-modern (use-package org-modern
:ensure t :ensure t
:config :config
(setopt org-modern-star 'replace ;; (setopt org-modern-star 'replace
org-modern-replace-stars '("§") ;; org-modern-replace-stars '("§")
org-modern-hide-stars "§") ;; org-modern-hide-stars "§")
(setopt org-modern-list '((?- . ""))) (setopt org-modern-list '((?- . "")))
(setopt org-modern-timestamp '(" %Y-%m-%d " . " %H:%M ")) (setopt org-modern-timestamp '(" %Y-%m-%d " . " %H:%M "))
(setopt org-modern-block-fringe nil) (setopt org-modern-block-fringe nil)
@ -265,6 +270,4 @@
:after org :after org
:config (org-node-cache-mode)) :config (org-node-cache-mode))
(provide 'init-org) (provide 'init-org)

View file

@ -0,0 +1,7 @@
;; TODO
(use-package flyspell)
(use-package olivetti)
(provide 'init-writer)

View file

@ -1 +0,0 @@
../doom/snippets

View file

@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: src
# key: src
# --
#+BEGIN_SRC $1
$2
#+END_SRC

View file

@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: elisp
# key: elisp
# --
#+BEGIN_SRC elisp
$1
#+END_SRC