Config: fix my/org-journal-mark-old-todos-as-comment function , keybinding optimize , undo enhance , refactor some code.
This commit is contained in:
@@ -38,6 +38,14 @@
|
|||||||
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
|
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
|
||||||
(global-set-key (kbd "<mouse-5>") 'mc/mark-pop)
|
(global-set-key (kbd "<mouse-5>") 'mc/mark-pop)
|
||||||
|
|
||||||
|
;; 大小写
|
||||||
|
(global-set-key (kbd "M-c") 'capitalize-dwim)
|
||||||
|
(global-set-key (kbd "M-u") 'upcase-dwim)
|
||||||
|
(global-set-key (kbd "M-l") 'downcase-dwim)
|
||||||
|
|
||||||
|
;; pair编辑
|
||||||
|
(global-set-key (kbd "C-c p d") 'delete-pair)
|
||||||
|
|
||||||
;; 快速复制当前行
|
;; 快速复制当前行
|
||||||
(defun duplicate-and-move-to-next-line()
|
(defun duplicate-and-move-to-next-line()
|
||||||
(interactive)
|
(interactive)
|
||||||
@@ -91,7 +99,8 @@
|
|||||||
(global-set-key (kbd "M-]") 'next-buffer)
|
(global-set-key (kbd "M-]") 'next-buffer)
|
||||||
|
|
||||||
;; 打开ibuffer
|
;; 打开ibuffer
|
||||||
(global-set-key (kbd "C-x B") 'ibuffer)
|
(global-set-key (kbd "C-x C-b") 'ibuffer-other-window)
|
||||||
|
(setq ibuffer-default-sorting-mode 'filename)
|
||||||
|
|
||||||
;; 段落导航
|
;; 段落导航
|
||||||
(global-set-key (kbd "M-p") 'backward-paragraph)
|
(global-set-key (kbd "M-p") 'backward-paragraph)
|
||||||
@@ -112,8 +121,8 @@
|
|||||||
;; 调整window
|
;; 调整window
|
||||||
(global-set-key (kbd "<f5>") 'shrink-window-horizontally)
|
(global-set-key (kbd "<f5>") 'shrink-window-horizontally)
|
||||||
(global-set-key (kbd "<f6>") 'enlarge-window-horizontally)
|
(global-set-key (kbd "<f6>") 'enlarge-window-horizontally)
|
||||||
(global-set-key (kbd "<f7>") 'enlarge-window)
|
(global-set-key (kbd "C-<f5>") 'enlarge-window)
|
||||||
(global-set-key (kbd "<f8>") 'shrink-window)
|
(global-set-key (kbd "C-<f6>") 'shrink-window)
|
||||||
|
|
||||||
;; crux相关
|
;; crux相关
|
||||||
(global-set-key (kbd "C-<backspace>") 'crux-kill-line-backwards) ;; C-DEL kill line backwards
|
(global-set-key (kbd "C-<backspace>") 'crux-kill-line-backwards) ;; C-DEL kill line backwards
|
||||||
@@ -122,6 +131,14 @@
|
|||||||
(global-set-key (kbd "C-a") 'crux-move-beginning-of-line) ;; 移动到第一个缩进而非行首
|
(global-set-key (kbd "C-a") 'crux-move-beginning-of-line) ;; 移动到第一个缩进而非行首
|
||||||
(global-set-key (kbd "C-x K") 'crux-kill-other-buffers) ;; 删除除当前buffer之外的buffer
|
(global-set-key (kbd "C-x K") 'crux-kill-other-buffers) ;; 删除除当前buffer之外的buffer
|
||||||
|
|
||||||
|
;; undo-fu
|
||||||
|
(global-set-key (kbd "C-/") 'undo-fu-only-undo)
|
||||||
|
(global-set-key (kbd "C-.") 'undo-fu-only-redo)
|
||||||
|
(global-set-key (kbd "C-c C-/") 'undo-fu-clear-all)
|
||||||
|
|
||||||
|
;; vundo
|
||||||
|
(global-set-key (kbd "C-x u") 'vundo)
|
||||||
|
|
||||||
;; consult
|
;; consult
|
||||||
(global-set-key (kbd "C-x b") 'consult-buffer) ;; buffer菜单
|
(global-set-key (kbd "C-x b") 'consult-buffer) ;; buffer菜单
|
||||||
(global-set-key (kbd "C-s") 'consult-line) ;; 搜索
|
(global-set-key (kbd "C-s") 'consult-line) ;; 搜索
|
||||||
@@ -139,6 +156,10 @@
|
|||||||
(global-set-key (kbd "C-c f l") 'consult-locate)
|
(global-set-key (kbd "C-c f l") 'consult-locate)
|
||||||
(global-set-key (kbd "C-c f m") 'consult-fd-global))
|
(global-set-key (kbd "C-c f m") 'consult-fd-global))
|
||||||
|
|
||||||
|
;; avy
|
||||||
|
(global-set-key (kbd "C-M-;") 'avy-goto-char)
|
||||||
|
(global-set-key (kbd "M-g g") 'avy-goto-line)
|
||||||
|
|
||||||
;; hungry-delete
|
;; hungry-delete
|
||||||
(global-set-key (kbd "C-c DEL") 'hungry-delete-backward) ;; 向后删除到第一个非空字符
|
(global-set-key (kbd "C-c DEL") 'hungry-delete-backward) ;; 向后删除到第一个非空字符
|
||||||
(global-set-key (kbd "C-c d") 'hungry-delete-forward) ;; 向前删除到第一个非空字符
|
(global-set-key (kbd "C-c d") 'hungry-delete-forward) ;; 向前删除到第一个非空字符
|
||||||
@@ -188,6 +209,10 @@
|
|||||||
(org-cycle))
|
(org-cycle))
|
||||||
(global-set-key (kbd "C-<tab>") 'org-cycle-current-subtree)
|
(global-set-key (kbd "C-<tab>") 'org-cycle-current-subtree)
|
||||||
|
|
||||||
|
;; heading菜单
|
||||||
|
(with-eval-after-load 'org
|
||||||
|
(define-key org-mode-map (kbd "C-c i") 'consult-org-heading))
|
||||||
|
|
||||||
;; 存储一个链接
|
;; 存储一个链接
|
||||||
(global-set-key (kbd "C-c l") 'org-store-link)
|
(global-set-key (kbd "C-c l") 'org-store-link)
|
||||||
|
|
||||||
@@ -196,7 +221,9 @@
|
|||||||
|
|
||||||
;; 在calendar中快速打开当天日记
|
;; 在calendar中快速打开当天日记
|
||||||
(eval-after-load "calendar"
|
(eval-after-load "calendar"
|
||||||
'(define-key calendar-mode-map (kbd "j o") 'org-journal-open-entry-for-editing))
|
(progn
|
||||||
|
'(define-key calendar-mode-map (kbd "j o") 'org-journal-open-entry-for-editing)
|
||||||
|
'(define-key calendar-mode-map (kbd "<RET>") 'org-journal-open-entry-for-editing)))
|
||||||
|
|
||||||
;; 日记
|
;; 日记
|
||||||
(global-set-key (kbd "C-c j o") 'org-journal-open-current-journal-file)
|
(global-set-key (kbd "C-c j o") 'org-journal-open-current-journal-file)
|
||||||
|
|||||||
@@ -16,15 +16,16 @@
|
|||||||
(use-package org-journal
|
(use-package org-journal
|
||||||
:config
|
:config
|
||||||
(setq org-journal-file-format "%Y-%m-%d.org"
|
(setq org-journal-file-format "%Y-%m-%d.org"
|
||||||
org-journal-file-header "#+title: Daily Journal\n#+category: journal\n\n"
|
org-journal-file-header "#+title: Daily Journal\n#+category: journal\n#+STARTUP: content\n\n"
|
||||||
org-journal-time-format "%m-%d %R \n:PROPERTIES:\n:Created: <%Y-%m-%d %a %H:%M:%S>\n:END:\n"
|
org-journal-time-format "%m-%d \n:PROPERTIES:\n:Created: <%Y-%m-%d %a %H:%M:%S>\n:END:\n"
|
||||||
org-journal-time-prefix "\n*** TODO "
|
org-journal-time-prefix "\n*** TODO "
|
||||||
org-journal-hide-entries-p t
|
org-journal-hide-entries-p t
|
||||||
org-journal-date-format (lambda (time)
|
org-journal-date-format (lambda (time)
|
||||||
(format "* %s %s\n:PROPERTIES:\n:Created: [%s]\n:END:"
|
(format "* %s %s\n:PROPERTIES:\n:Created: [%s]\n:END:"
|
||||||
(format-time-string "%Y-%m-%d" time)
|
(format-time-string "%Y-%m-%d" time)
|
||||||
(format-time-string "%a" time)
|
(format-time-string "%a" time)
|
||||||
(format-time-string "%Y-%m-%d %a" time))))
|
(format-time-string "%Y-%m-%d %a" time)))
|
||||||
|
org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"")
|
||||||
|
|
||||||
(when *is-windows*
|
(when *is-windows*
|
||||||
(setq org-journal-dir "D:/emacs/my-org-daily/"))
|
(setq org-journal-dir "D:/emacs/my-org-daily/"))
|
||||||
@@ -53,30 +54,37 @@
|
|||||||
(add-hook 'org-journal-after-entry-create-hook #'my/journal-position-cursor-after-time)
|
(add-hook 'org-journal-after-entry-create-hook #'my/journal-position-cursor-after-time)
|
||||||
|
|
||||||
(defun org-journal-open-entry-for-editing (&optional event)
|
(defun org-journal-open-entry-for-editing (&optional event)
|
||||||
"Open journal entry for the date under cursor in calendar for editing."
|
"Open journal entry for the date under cursor in calendar for editing."
|
||||||
(interactive
|
(interactive
|
||||||
(list last-nonmenu-event))
|
(list last-nonmenu-event))
|
||||||
(let* ((date (calendar-cursor-to-date t event))
|
(let* ((date (calendar-cursor-to-date t event))
|
||||||
(time (org-journal--calendar-date->time date))
|
(time (org-journal--calendar-date->time date))
|
||||||
(org-journal-file (org-journal--get-entry-path time)))
|
(org-journal-file (org-journal--get-entry-path time)))
|
||||||
(if (file-exists-p org-journal-file)
|
(if (file-exists-p org-journal-file)
|
||||||
(progn
|
(progn
|
||||||
(funcall org-journal-find-file org-journal-file)
|
(funcall org-journal-find-file org-journal-file)
|
||||||
(unless (org-journal--daily-p)
|
(unless (org-journal--daily-p)
|
||||||
(org-journal--goto-entry date)))
|
(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)
|
(defun my/org-journal-mark-old-todos-as-comment (entries)
|
||||||
"Change of TODO entry's TODO key word to COMMENT after carryover."
|
"Change TODO entry's TODO keyword to COMMENT after carryover."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(mapc (lambda (entry)
|
(let* ((todo-keywords (cl-remove-if
|
||||||
(let ((start (car entry))
|
(lambda (kw) (member kw org-done-keywords))
|
||||||
(end (cadr entry)))
|
org-todo-keywords-1))
|
||||||
(goto-char start)
|
(todo-pattern (when todo-keywords
|
||||||
(when (re-search-forward "^\\(\\*+ \\)TODO\\>" end t)
|
(regexp-opt todo-keywords 'words))))
|
||||||
(replace-match "\\1COMMENT" t nil))))
|
(when todo-pattern
|
||||||
(reverse entries)))
|
(mapc (lambda (entry)
|
||||||
(save-buffer))
|
(let ((start (car 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))))
|
||||||
|
(save-buffer)))
|
||||||
|
|
||||||
(setq org-journal-handle-old-carryover-fn #'my/org-journal-mark-old-todos-as-comment))
|
(setq org-journal-handle-old-carryover-fn #'my/org-journal-mark-old-todos-as-comment))
|
||||||
|
|
||||||
@@ -89,8 +97,7 @@
|
|||||||
(add-hook 'org-mode-hook
|
(add-hook 'org-mode-hook
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(require 'org-tempo)
|
(require 'org-tempo)
|
||||||
(org-indent-mode)
|
(org-indent-mode)))
|
||||||
(local-set-key (kbd "C-c i") 'consult-org-heading)))
|
|
||||||
|
|
||||||
;; 预加载,防止windows的org-mode加载卡顿
|
;; 预加载,防止windows的org-mode加载卡顿
|
||||||
(if *is-windows*
|
(if *is-windows*
|
||||||
@@ -123,7 +130,7 @@
|
|||||||
|
|
||||||
(when *is-windows*
|
(when *is-windows*
|
||||||
(with-eval-after-load 'org
|
(with-eval-after-load 'org
|
||||||
(setq org-agenda-files '("d:/emacs/org/learning-org-mode.org"
|
(setq org-agenda-files '("d:/emacs/org/learning-oprg-mode.org"
|
||||||
"d:/emacs/hugo/this-is-my-blog/all-blog.org"
|
"d:/emacs/hugo/this-is-my-blog/all-blog.org"
|
||||||
"d:/emacs/my-org-daily/")))) ; agenda文件,目录或文件
|
"d:/emacs/my-org-daily/")))) ; agenda文件,目录或文件
|
||||||
(when *is-mac*
|
(when *is-mac*
|
||||||
@@ -134,9 +141,11 @@
|
|||||||
|
|
||||||
(setq org-default-priority ?D)
|
(setq org-default-priority ?D)
|
||||||
|
|
||||||
|
(setq org-agenda-skip-function-global
|
||||||
|
'(org-agenda-skip-entry-if 'todo '("COMMENT")))
|
||||||
|
|
||||||
;; org-super-agenda 配置
|
;; org-super-agenda 配置
|
||||||
(use-package org-super-agenda
|
(use-package org-super-agenda
|
||||||
:after org-agenda
|
|
||||||
:config
|
:config
|
||||||
(org-super-agenda-mode))
|
(org-super-agenda-mode))
|
||||||
|
|
||||||
@@ -150,16 +159,38 @@
|
|||||||
("pb" "Priority >= B"
|
("pb" "Priority >= B"
|
||||||
((tags-todo "+PRIORITY<=\"B\"")))
|
((tags-todo "+PRIORITY<=\"B\"")))
|
||||||
("pc" "Priority >= C"
|
("pc" "Priority >= C"
|
||||||
((tags-todo "+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)))))))))
|
||||||
|
|
||||||
;; capture模板
|
;; capture模板
|
||||||
(when *is-windows*
|
(when *is-windows*
|
||||||
(setq org-capture-templates
|
(setq org-capture-templates
|
||||||
'(("t" "Todo" entry (file+headline "d:/emacs/org/todos.org" "Workspace")
|
'(("t" "Todo" entry (file+headline "d:/emacs/org/todos.org" "Workspace")
|
||||||
"* TODO [#B] %?\n %i\n %U"
|
"* TODO [#B] %?\n %i\n %U"
|
||||||
:empty-lines 1)
|
:empty-lines 1))))
|
||||||
("j" "Journal" entry (file+datetree "d:/emacs/org/journal.org")
|
|
||||||
"* %?\nEntered on %U\n %i\n"))))
|
|
||||||
|
|
||||||
(when *is-mac*
|
(when *is-mac*
|
||||||
(setq org-capture-templates
|
(setq org-capture-templates
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
;;; init-package.el
|
;;; init-package.el
|
||||||
;;; -*- lexical-binding: t -*-
|
;;; -*- lexical-binding: t -*-
|
||||||
|
|
||||||
|
(setopt use-package-enable-imenu-support t)
|
||||||
|
|
||||||
;; 安装gcmh用于管理内存回收
|
;; 安装gcmh用于管理内存回收
|
||||||
(use-package gcmh
|
(use-package gcmh
|
||||||
:init
|
:init
|
||||||
@@ -91,13 +93,32 @@
|
|||||||
search-ring
|
search-ring
|
||||||
regexp-search-ring
|
regexp-search-ring
|
||||||
extended-command-history)
|
extended-command-history)
|
||||||
savehist-autosave-interval 300)
|
savehist-autosave-interval 300))
|
||||||
)
|
|
||||||
|
|
||||||
;; saveplace,保存光标位置
|
;; saveplace,保存光标位置
|
||||||
(use-package saveplace
|
(use-package saveplace
|
||||||
:hook (after-init . save-place-mode))
|
:hook (after-init . save-place-mode))
|
||||||
|
|
||||||
|
;; undo增强
|
||||||
|
(use-package undo-fu)
|
||||||
|
|
||||||
|
(use-package undo-fu-session
|
||||||
|
:config (undo-fu-session-global-mode))
|
||||||
|
|
||||||
|
;; vundo
|
||||||
|
(use-package vundo
|
||||||
|
:init (setq undo-limit 800000
|
||||||
|
undo-strong-limit 1200000
|
||||||
|
undo-outer-limit 12000000))
|
||||||
|
|
||||||
|
;; ibuffer-projectile
|
||||||
|
(use-package ibuffer-projectile
|
||||||
|
:init (add-hook 'ibuffer-hook
|
||||||
|
(lambda ()
|
||||||
|
(ibuffer-projectile-set-filter-groups)
|
||||||
|
(unless (eq ibuffer-sorting-mode 'alphabetic)
|
||||||
|
(ibuffer-do-sort-by-alphabetic)))))
|
||||||
|
|
||||||
;; 安装ox-hugo
|
;; 安装ox-hugo
|
||||||
(use-package ox-hugo
|
(use-package ox-hugo
|
||||||
:custom
|
:custom
|
||||||
|
|||||||
@@ -59,4 +59,11 @@
|
|||||||
(unless *is-mac*
|
(unless *is-mac*
|
||||||
(server-start))
|
(server-start))
|
||||||
|
|
||||||
|
;; 窗口名
|
||||||
|
(setq-default frame-title-format '("%b - Emacs"))
|
||||||
|
|
||||||
|
;; electirc-pair-mode
|
||||||
|
(add-hook 'emacs-lisp-mode-hook 'electric-pair-mode)
|
||||||
|
(add-hook 'org-mode-hook 'electric-pair-mode)
|
||||||
|
|
||||||
(provide 'init-startup)
|
(provide 'init-startup)
|
||||||
|
|||||||
Reference in New Issue
Block a user