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

View file

@ -1,11 +1,12 @@
(use-package copilot
:vc (:url "https://github.com/copilot-emacs/copilot.el"
:rev :newest
:branch "main")
:hook (prog-mode . copilot-mode)
:config
(define-key copilot-completion-map (kbd "<tab>") 'copilot-accept-completion)
(define-key copilot-completion-map (kbd "TAB") 'copilot-accept-completion))
;; (use-package copilot
;; :vc (:url "https://github.com/copilot-emacs/copilot.el"
;; :rev :newest
;; :branch "main")
;; :hook (prog-mode . copilot-mode)
;; :config
;; (define-key copilot-completion-map (kbd "<tab>") 'copilot-accept-completion)
;; (define-key copilot-completion-map (kbd "TAB") 'copilot-accept-completion))
(provide 'init-ai)

View file

@ -6,7 +6,34 @@
(use-package beancount
:mode (("\\.beancount\\'" . beancount-mode)
("\\.bean\\'" . beancount-mode)))
("\\.bean\\'" . beancount-mode))
:init
(add-hook 'beancount-mode-hook #'outline-minor-mode)
(define-key beancount-mode-map (kbd "C-c C-n") #'outline-next-visible-heading)
(define-key beancount-mode-map (kbd "C-c C-p") #'outline-previous-visible-heading)
(defvar beancount-accounts-files nil "List of account files.")
(setq beancount-accounts-files
(directory-files "~/Dropbox/beancount/accounts/" 'full (rx ".beancount" eos)))
(defun w/beancount--collect-accounts-from-files (oldfun regex n)
"Collect all accounts from files."
(let ((keys (funcall oldfun regex n))
(hash (make-hash-table :test 'equal)))
(dolist (key keys)
(puthash key nil hash))
;; collect accounts from files
(save-excursion
(dolist (f beancount-accounts-files)
(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 n) nil hash)))))
(hash-table-keys hash)))
(advice-add #'beancount-collect
:around #'w/beancount--collect-accounts-from-files
'((name . "collect accounts from files as well"))))
(provide 'init-beancount)

View file

@ -97,4 +97,6 @@
(setq diff-hl-margin-mode nil)
(diff-hl-flydiff-mode))
(global-font-lock-mode t)
(provide 'init-edit)

View file

@ -13,34 +13,34 @@
; Motion - Emacs built-in read-only mode
(evil-define-key '(normal visual operator motion) 'global
;; To see the keybindings, use <C-h> k then type the key
"n" 'evil-next-line
"e" 'evil-previous-line
"i" 'evil-forward-char
;"l" 'evil-insert
;"L" 'evil-insert-0-line
"k" 'evil-search-next
"K" 'evil-search-previous
"j" 'evil-forward-word-end
"J" 'evil-forward-WORD-end
"N" '(lambda () (interactive) (evil-next-line 5)) ; 5n
"E" '(lambda () (interactive) (evil-previous-line 5)) ; 5e
(kbd "C-w n") 'evil-window-down
(kbd "C-w e") 'evil-window-up
(kbd "C-w i") 'evil-window-right
(kbd "C-w C-n") 'evil-window-down
(kbd "C-w C-e") 'evil-window-up
(kbd "C-w C-i") 'evil-window-right)
(evil-define-key '(normal visual) 'global
"l" 'evil-insert
"L" 'evil-insert-0-line)
; "n" 'evil-next-line
; "e" 'evil-previous-line
; "i" 'evil-forward-char
; ;"l" 'evil-insert
; ;"L" 'evil-insert-0-line
; "k" 'evil-search-next
; "K" 'evil-search-previous
; "j" 'evil-forward-word-end
; "J" 'evil-forward-WORD-end
"J" '(lambda () (interactive) (evil-next-line 5)) ; 5n
"K" '(lambda () (interactive) (evil-previous-line 5)) ; 5e
; (kbd "C-w n") 'evil-window-down
; (kbd "C-w e") 'evil-window-up
; (kbd "C-w i") 'evil-window-right
; (kbd "C-w C-n") 'evil-window-down
; (kbd "C-w C-e") 'evil-window-up
; (kbd "C-w C-i") 'evil-window-right)
; (evil-define-key '(normal visual) 'global
; "l" 'evil-insert
; "L" 'evil-insert-0-line)
(evil-define-key '(normal motion) 'global
"H" #'tab-line-switch-to-prev-tab
"I" #'tab-line-switch-to-next-tab)
"L" #'tab-line-switch-to-next-tab)
(evil-define-key '(visual operator) 'global
"H" #'evil-beginning-of-line
"I" #'evil-end-of-line)
"L" #'evil-end-of-line)
(evil-ex-define-cmd "bn" #'tab-line-switch-to-next-tab)
(evil-ex-define-cmd "bp" #'tab-line-switch-to-prev-tab))
(evil-ex-define-cmd "bp" #'tab-line-switch-to-prev-tab)))
;; Text Objects Keymap - Use `l` for inner (swap i and l)
;; https://github.com/emacs-evil/evil/blob/master/evil-maps.el#L398-L421