diff --git a/.gitignore b/.gitignore index a2f1801..0ff74cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # generated by macOS .DS_Store +org-roam.db + # machine generated doom profiles or metadata /profiles/*.el /.local*/ diff --git a/init.el b/init.el index 10efb34..b2a4707 100644 --- a/init.el +++ b/init.el @@ -62,6 +62,12 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-package benchmark-init + :ensure t + :demand t + :config + ;; To disable collection of benchmark data after init is done. + (add-hook 'after-init-hook 'benchmark-init/deactivate)) (add-to-list 'load-path (expand-file-name "lisp/" user-emacs-directory)) @@ -72,5 +78,7 @@ (require 'init-ui) (require 'init-bindings) +(require 'init-llm) + (require 'init-coding) (require 'init-org) diff --git a/lisp/init-better-default.el b/lisp/init-better-default.el index 6966753..f575ca0 100644 --- a/lisp/init-better-default.el +++ b/lisp/init-better-default.el @@ -10,12 +10,18 @@ (setq make-backup-files nil) (setq custom-file (expand-file-name "~/.emacs.d/custom.el")) (load custom-file 'no-error 'no-message) +(setq use-short-answers t) (global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选 (global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制 (global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存 (global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴 (global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销 -(global-set-key (kbd "s-x") 'sexp) ;对应Windows上面的Ctrol-x 剪切 + +(use-package exec-path-from-shell + :init + (exec-path-from-shell-initialize)) + +(global-set-key (kbd "C-x C-b") 'ibuffer) (provide 'init-better-default) diff --git a/lisp/init-bindings.el b/lisp/init-bindings.el index 8303621..27c3c94 100644 --- a/lisp/init-bindings.el +++ b/lisp/init-bindings.el @@ -5,8 +5,9 @@ (define-key orgmode-map (kbd "a") #'org-agenda) (define-key orgmode-map (kbd "n") #'org-capture) +(define-key orgmode-map (kbd "t") #'org-todo-list) -(global-set-key (kbd "C-c g") #'magit-status) +(global-set-key (kbd "C-\\") #'vterm) (provide 'init-bindings) diff --git a/lisp/init-coding.el b/lisp/init-coding.el index 26a3c5d..b4fcd40 100644 --- a/lisp/init-coding.el +++ b/lisp/init-coding.el @@ -1,5 +1,20 @@ ;; -*- lexical-binding: t -*- -(use-package magit) +(use-package magit + :bind ("C-c g" . magit-status) + :config + (setq magit-show-long-lines-warning nil)) + +;; (use-package eat +;; :ensure `(eat :repo "https://codeberg.org/akib/emacs-eat" +;; :files ("*.el" ("term" "term/*.el") "*.texi" +;; "*.ti" ("terminfo/e" "terminfo/e/*") +;; ("terminfo/65" "terminfo/65/*") +;; ("integration" "integration/*") +;; (:exclude ".dir-locals.el" "*-tests.el"))) +;; :config +;; ) + +(use-package vterm) (provide 'init-coding) diff --git a/lisp/init-edit.el b/lisp/init-edit.el index 3588cd4..b6fdeb6 100644 --- a/lisp/init-edit.el +++ b/lisp/init-edit.el @@ -5,5 +5,11 @@ (require 'smartparens-config) (smartparens-global-mode)) +(use-package winum + :init + (winum-mode) + :config + (winum-set-keymap-prefix (kbd "C-c w")) ) + (provide 'init-edit) diff --git a/lisp/init-llm.el b/lisp/init-llm.el new file mode 100644 index 0000000..8dbcf57 --- /dev/null +++ b/lisp/init-llm.el @@ -0,0 +1,16 @@ +;;; -*- lexical-binding: t; -*- + +(use-package gptel + :defer t + :bind (("C-c l s" . gptel-send) + ("C-c l m" . gptel-menu)) + :config + (setq gptel-model 'claude-sonnet-4.5) + (setq gptel-backend (gptel-make-gh-copilot "Copilot")) + (setq gptel-display-buffer-action nil) ; if user changes this, popup manager will bow out + ) + +(use-package gptel-magit + :hook (magit-mode . gptel-magit-install)) + +(provide 'init-llm) diff --git a/lisp/init-org.el b/lisp/init-org.el index 6f13a8a..ee2e584 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -14,7 +14,9 @@ ;; (org-capture-init) (add-to-list 'org-modules 'org-habit) (setq org-directory "~/org/") + (add-to-list 'org-agenda-files "~/org") ) + (use-package org-modern :config (setq org-modern-table nil)) @@ -51,4 +53,24 @@ ;; More immediate live-previews -- the default delay is 1 second (setq org-latex-preview-mode-update-delay 0.25)) +(use-package org-roam + :ensure t + :custom + (org-roam-directory (file-truename "~/org/roam")) + :bind (("C-c n l" . org-roam-buffer-toggle) + ("C-c n f" . org-roam-node-find) + ("C-c n g" . org-roam-graph) + ("C-c n i" . org-roam-node-insert) + ("C-c n c" . org-roam-capture) + ;; Dailies + ("C-c n j" . org-roam-dailies-capture-today)) + :config + ;; If you're using a vertical completion framework, you might want a more informative completion interface + (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) + (org-roam-db-autosync-mode) + ;; If using org-roam-protocol + (require 'org-roam-protocol)) + +(use-package org-roam-ui) + (provide 'init-org)