From 1af78f99b7d7dab6446fbdcf0efd11a4749db5f9 Mon Sep 17 00:00:00 2001 From: User Date: Tue, 14 Apr 2026 19:08:53 +0800 Subject: [PATCH] Config: fix org-journal template --- lisp/init-kbd.el | 2 +- lisp/init-org.el | 115 ++++++++++++++++++++++++----------------------- 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el index 9190d9d..63de70a 100644 --- a/lisp/init-kbd.el +++ b/lisp/init-kbd.el @@ -290,8 +290,8 @@ Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise tog (global-set-key (kbd "C-;") 'embark-act) ;; vterm +(global-set-key (kbd "C-c v") 'vterm) (with-eval-after-load 'vterm - (global-set-key (kbd "C-c v") 'vterm) (define-key vterm-mode-map (kbd "M-]") nil) (define-key vterm-mode-map (kbd "C-x C-x") 'vterm-send-C-x)) diff --git a/lisp/init-org.el b/lisp/init-org.el index 2812cd4..bd7dc45 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -42,7 +42,7 @@ (format-time-string "%Y-%m-%d" time) (format-time-string "%a" time) (format-time-string "%Y-%m-%d %a" time))) - org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"") + org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"") (when *is-windows* (setq org-journal-dir "h:/emacs/my-org-daily/")) @@ -58,6 +58,7 @@ (let ((day-end (save-excursion (org-end-of-subtree) (point)))) (unless (search-forward "** daily" day-end t) (goto-char day-end) + (unless (bolp) (insert "\n")) (insert "\n\n** daily\n\n\n") (insert "** tasks\n"))))) @@ -82,7 +83,7 @@ (funcall org-journal-find-file org-journal-file) (unless (org-journal--daily-p) (org-journal--goto-entry date))) - (message "No journal entry for this date.")))) + (message "No journal entry for this date.")))) (defun my/org-journal-mark-old-todos-as-comment (entries) "Change TODO entry's TODO keyword to COMMENT after carryover." @@ -92,48 +93,48 @@ org-todo-keywords-1)) (todo-pattern (when todo-keywords (regexp-opt todo-keywords 'words)))) - (when todo-pattern + (when todo-pattern (mapc (lambda (entry) (let ((start (car entry)) - (end (set-marker (make-marker) (cadr entry)))) + (end (set-marker (make-marker) (cadr entry)))) (goto-char start) (while (re-search-forward (concat "^\\(\\*+ \\)" todo-pattern) end t) (replace-match "\\1COMMENT" t nil)) (set-marker end nil))) - (reverse entries)))) + (reverse entries)))) (save-buffer))) (setq org-journal-handle-old-carryover-fn #'my/org-journal-mark-old-todos-as-comment)) ;; 在org-journal加载cns-mode (add-hook 'org-journal-mode-hook - (lambda () - (global-cns-mode-enable-in-buffer))) + (lambda () + (global-cns-mode-enable-in-buffer))) ;; 一些随org-mode加载的基础配置 (add-hook 'org-mode-hook - (lambda () - (require 'org-tempo) - (org-indent-mode) - (setq-local electric-pair-inhibit-predicate + (lambda () + (require 'org-tempo) + (org-indent-mode) + (setq-local electric-pair-inhibit-predicate (lambda (char) (or (eq char ?<) (electric-pair-default-inhibit char)))))) (with-eval-after-load 'org (require 'org-download) - (setq org-return-follows-link t)) + (setq org-return-follows-link t)) ;; 预加载,防止windows的org-mode加载卡顿 (if *is-windows* (progn (run-with-idle-timer - 0.5 nil - (lambda () - (with-temp-buffer - (org-mode) - (org-mode)) - (message "Org preloaded"))))) + 0.5 nil + (lambda () + (with-temp-buffer + (org-mode) + (org-mode)) + (message "Org preloaded"))))) ;; 设置标题字体大小 ;; (dolist (face org-level-faces) @@ -200,34 +201,34 @@ (setq org-agenda-custom-commands '(("pa" "Priority >= A" ((tags-todo "+PRIORITY=\"A\""))) - ("pb" "Priority >= B" - ((tags-todo "+PRIORITY<=\"B\""))) - ("pc" "Priority >= C" - ((tags-todo "+PRIORITY<=\"C\""))) - ("qd" "TODO entries sort by closed time" - ((org-ql-block '(closed) - ((org-ql-block-header "Closed TODOs") - (org-ql-sort '(closed)) - (org-super-agenda-groups - '((:auto-ts t))))))) - ("qS" "SOMEDAYs" - ((org-ql-block '(todo "SOMEDAY") - ((org-ql-block-header "SOMEDAYs") - (org-ql-sort '(start-time)) - (org-super-agenda-groups - '((:auto-ts t))))))) - ("qs" "STARTEDs" - ((org-ql-block '(todo "STARTED") - ((org-ql-block-header "STARTEDs") - (org-ql-sort '(start-time)) - (org-super-agenda-groups - '((:auto-ts t))))))) - ("qt" "TODOs sort by start time" - ((org-ql-block '(todo) - ((org-ql-block-header "TODOs") - (org-ql-sort '(start-time)) - (org-super-agenda-groups - '((:auto-ts t))))))))) + ("pb" "Priority >= B" + ((tags-todo "+PRIORITY<=\"B\""))) + ("pc" "Priority >= C" + ((tags-todo "+PRIORITY<=\"C\""))) + ("qd" "TODO entries sort by closed time" + ((org-ql-block '(closed) + ((org-ql-block-header "Closed TODOs") + (org-ql-sort '(closed)) + (org-super-agenda-groups + '((:auto-ts t))))))) + ("qS" "SOMEDAYs" + ((org-ql-block '(todo "SOMEDAY") + ((org-ql-block-header "SOMEDAYs") + (org-ql-sort '(start-time)) + (org-super-agenda-groups + '((:auto-ts t))))))) + ("qs" "STARTEDs" + ((org-ql-block '(todo "STARTED") + ((org-ql-block-header "STARTEDs") + (org-ql-sort '(start-time)) + (org-super-agenda-groups + '((:auto-ts t))))))) + ("qt" "TODOs sort by start time" + ((org-ql-block '(todo) + ((org-ql-block-header "TODOs") + (org-ql-sort '(start-time)) + (org-super-agenda-groups + '((:auto-ts t))))))))) (setq org-tag-alist '( ("scheme" . ?s) @@ -279,7 +280,7 @@ ;; 批量调整表格 (defun org-table-align-all () - "Ajust all table in current buffer." + "Ajust all table in current buffer." (interactive) (save-excursion (goto-char (point-min)) @@ -316,14 +317,14 @@ See `org-capture-templates' for more information." (file+headline "h:/emacs/hugo/this-is-my-blog/all-blog.org" "Blog Ideas") (function org-hugo-new-subtree-post-capture-template))) (add-to-list 'org-capture-templates - '("h" ;`org-capture' binding + h - "Hugo post" - entry - ;; It is assumed that below file is present in `org-directory' - ;; and that it has a "Blog Ideas" heading. It can even be a - ;; symlink pointing to the actual location of all-posts.org! - (file+headline "~/org/hugo/this-is-my-blog/all-blog.org" "Blog Ideas") - (function org-hugo-new-subtree-post-capture-template))))) + '("h" ;`org-capture' binding + h + "Hugo post" + entry + ;; It is assumed that below file is present in `org-directory' + ;; and that it has a "Blog Ideas" heading. It can even be a + ;; symlink pointing to the actual location of all-posts.org! + (file+headline "~/org/hugo/this-is-my-blog/all-blog.org" "Blog Ideas") + (function org-hugo-new-subtree-post-capture-template))))) ;; 快速部署 (defun my-blog-publish () @@ -350,8 +351,8 @@ See `org-capture-templates' for more information." (message "Pushing to remote...") (let ((exit-code (eshell-command "git push"))) (if (eq exit-code t) - (message "Push may have failed or nothing to push, check *Messages* buffer for details") - (message "Push successfully %s" timestamp))))) + (message "Push may have failed or nothing to push, check *Messages* buffer for details") + (message "Push successfully %s" timestamp))))) (global-set-key (kbd "C-c o p") 'my-blog-publish)