(Emacs)+config for abbrevs

Adds a macro to make abbrevs easier to insert
This commit is contained in:
2020-09-27 21:56:52 +01:00
parent 113a39f5bb
commit 356931d9e3

View File

@@ -849,6 +849,46 @@ are for simple expressions wherein there is only one user input (say,
getting today's time which only requires you asking for it). They getting today's time which only requires you asking for it). They
provide a lot of inbuilt functionality and are quite useful. provide a lot of inbuilt functionality and are quite useful.
Skeletons, on the other hand, are for higher level insertions Skeletons, on the other hand, are for higher level insertions
*** Abbrevs
Just define a few abbrevs for various date-time operations. Also
define a macro that will assume a function for the expansion, helping
with abstracting a few things away.
#+begin_src emacs-lisp
(use-package abbrev
:straight nil
:hook
(prog-mode-hook . abbrev-mode)
(text-mode-hook . abbrev-mode)
:init
(defmacro +snippets/deff-abbrev (ABBREV-TABLE ABBREV EXPANSION)
"Wraps around define-abbrev to fill in some repeated stuff
when expansion is a function."
`(define-abbrev
,ABBREV-TABLE
,ABBREV
""
(proc (insert ,EXPANSION))))
:config
(+snippets/deff-abbrev
global-abbrev-table
"fdate"
(format-time-string "%Y-%m-%d" (current-time)))
(+snippets/deff-abbrev
global-abbrev-table
"ftime"
(format-time-string "%H:%M:%S" (current-time)))
(+snippets/deff-abbrev
text-mode-abbrev-table
"fday"
(format-time-string "%A" (current-time)))
(+snippets/deff-abbrev
text-mode-abbrev-table
"fmonth"
(format-time-string "%B" (current-time))))
#+end_src
*** Yasnippet default *** Yasnippet default
:PROPERTIES: :PROPERTIES:
:header-args:emacs-lisp: :tangle no :header-args:emacs-lisp: :tangle no