summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/mm-calc.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/mm-calc.el')
-rw-r--r--.config/emacs/modules/mm-calc.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/.config/emacs/modules/mm-calc.el b/.config/emacs/modules/mm-calc.el
new file mode 100644
index 0000000..2a9a74b
--- /dev/null
+++ b/.config/emacs/modules/mm-calc.el
@@ -0,0 +1,25 @@
+;;; mm-calc.el --- Emacs configurations for ‘calc-mode’ -*- lexical-binding: t; -*-
+
+;; TODO: Swap more than 2 elements?
+(defun mm-calc-swap ()
+ "Swap the top two elements on the stack."
+ (declare (modes calc-mode))
+ (interactive)
+ (calc-over 2)
+ (calc-truncate-up 2)
+ (calc-pop 1)
+ (calc-truncate-down 2))
+
+(use-package calc
+ :bind (:map calc-mode-map
+ ("C-c x" . #'mm-calc-swap))
+ ;; TODO: Can this be done in :custom?
+ :init
+ (setopt
+ calc-display-trail nil
+ calc-group-digits t
+ ;; Optimize for Europeans
+ calc-point-char ","
+ calc-group-char "."))
+
+(provide 'mm-calc)