feat(emacs): qwerty

This commit is contained in:
js0ny 2025-09-22 01:13:21 +01:00
parent fb9ea29d52
commit 47b8460825
8 changed files with 108 additions and 52 deletions

35
tools/doom/beancount.el Normal file
View file

@ -0,0 +1,35 @@
;;; init-beancount.el --- beancount support -*- lexical-binding: t -*-
(after! beancount
;; 1. 自动启用 outline-minor-mode
(add-hook! 'beancount-mode-hook #'outline-minor-mode)
;; 2. 设置大纲导航快捷键 (使用 Doom 的 map! 宏)
(map! :map beancount-mode-map
"C-c C-n" #'outline-next-visible-heading
"C-c C-p" #'outline-previous-visible-heading)
;; 3. 核心功能:跨文件账户补全 (这部分逻辑完全保留)
(defvar my-beancount-accounts-files nil "List of account files.")
(setq my-beancount-accounts-files
(directory-files "~/Documents/Finance/Beancount/config/" 'full (rx ".beancount" eos)))
(defun my-beancount--collect-accounts-from-files (oldfun &rest args)
"Collect all accounts from files specified in `my-beancount-accounts-files'."
(let ((keys (apply oldfun args))
(hash (make-hash-table :test 'equal)))
(dolist (key keys)
(puthash key nil hash))
;; collect accounts from files
(save-excursion
(dolist (f my-beancount-accounts-files)
;; `ignore-errors` is a good practice for file operations
(ignore-errors
(with-current-buffer (find-file-noselect f)
(goto-char (point-min))
(while (re-search-forward beancount-account-regexp nil t)
(puthash (match-string-no-properties 1) nil hash))))))
(hash-table-keys hash)))
(advice-add #'beancount-collect
:around #'my-beancount--collect-accounts-from-files))

View file

@ -22,10 +22,10 @@
;; accept. For example:
;;
;; https://emacs-china.org/t/doom-emacs/23513/13
(setq doom-font (font-spec :family "Sarasa Mono SC Nerd Font" :size 14)
(setq doom-font (font-spec :family "Maple Mono NF CN" :size 14)
doom-serif-font doom-font
doom-symbol-font (font-spec :family "Sarasa Mono SC Nerd Font")
doom-variable-pitch-font (font-spec :family "Sarasa Mono SC Nerd Font" :weight 'extra-bold))
doom-symbol-font (font-spec :family "Maple Mono NF CN")
doom-variable-pitch-font (font-spec :family "Maple Mono NF CN" :weight 'extra-bold))
;; 如果不把这玩意设置为 nil, 会默认去用 fontset-default 来展示, 配置无效
(setq use-default-font-for-symbols nil)
@ -153,3 +153,6 @@
(if (eq system-type 'gnu/linux)
(setq ee-terminal-command "kitty"))
)
(load! "beancount.el")

View file

@ -1,20 +1,8 @@
(map!
:nvm "l" 'evil-insert
:nvm "L" 'evil-insert-line
:nvm "k" 'evil-ex-search-next
:nvm "K" 'evil-ex-search-previous
:nvom "j" 'evil-forward-word-end
:nvom "J" 'evil-forward-WORD-end
:nvom "n" 'evil-next-line
:nvom "e" 'evil-previous-line
:nvom "i" 'evil-forward-char
:nvm "H" 'evil-prev-buffer
:nvm "I" 'evil-next-buffer
:nvom "N" '(lambda () (interactive) (evil-next-line 5)) ; 5n
:nvom "E" '(lambda () (interactive) (evil-previous-line 5)) ; 5e
:nvom "C-w n" 'evil-window-down
:nvom "C-w e" 'evil-window-up
:nvom "C-w i" 'evil-window-right
:nvm "L" 'evil-next-buffer
:nvom "J" '(lambda () (interactive) (evil-next-line 5)) ; 5j
:nvom "K" '(lambda () (interactive) (evil-previous-line 5)) ; 5k
)
;; Swap ; and :

View file

@ -114,7 +114,7 @@
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
@ -151,7 +151,7 @@
;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org ; organize your plain life in plain text
+pomodoro