Xah Talk Show 2024-05-08 Ep553 Emacs Lisp Coding, Calc Pad, Increment Digit, How to Change Behavior, Zoomer Idiocity

vidthumb xjmMVxqvSX4

make a calculator pad

(defun xah-calculator ()
  "Open a template file to use as calculator.
Version: 2024-05-08"
  (interactive)
  (let ((xcalcpath "~/.emacs.d/temp/xcalc.py"))
    (find-file xcalcpath)))

sample calc file

cost = 3 + 4
income = 3 + 250

print(income -cost -382.72 + 197)

print(3 + 4 - 382.72 + 197)

increment number

(defun xah-increment-number ()
  "increment the number under cursor.
Once called,
Press up arrow to increase.
Press down arrow to decrease.
Version: 2024-05-08"
  (interactive)
  (let ((xcurDigit (char-to-string (char-after))))
    (when (not (string-match "[0-9]" xcurDigit))
      (user-error "char under cursor is not a digit"))
    (delete-char 1)
    (insert (number-to-string (1+ (string-to-number xcurDigit))))
    (backward-char))
  (set-transient-map
   (let ((xkmap (make-sparse-keymap)))
     (define-key xkmap (kbd "<up>") 'xah-increment-number)
     (define-key xkmap (kbd "<down>") 'xah-decrement-number)
     xkmap)))

(defun xah-decrement-number ()
  "decrement the number under cursor.
Once called,
Press up arrow to increase.
Press down arrow to decrease.
Version: 2024-05-08"
  (interactive)
  (let ((xcurDigit (char-to-string (char-after))))
    (when (not (string-match "[0-9]" xcurDigit))
      (user-error "char under cursor is not a digit"))
    (delete-char 1)
    (insert (number-to-string (1- (string-to-number xcurDigit))))
    (backward-char))
  (set-transient-map
   (let ((xkmap (make-sparse-keymap)))
     (define-key xkmap (kbd "<up>") 'xah-increment-number)
     (define-key xkmap (kbd "<down>") 'xah-decrement-number)
     xkmap)))

(global-set-key (kbd "<f5>") 'xah-increment-number )