上海企业网站制作费用做网站分类链接
2026/2/21 14:55:48 网站建设 项目流程
上海企业网站制作费用,做网站分类链接,互联网服务,app制作平台源码目录 1 创建任务文件2 设置基础任务状态3 捕获 - 快速记录任务4 事件优先级5 Timestamp#xff08;时间戳#xff09;5.1 基本形式5.2 重复间隔5.3 修改默认提醒时间5.4 重复事件的表示 6 任务进度状态跟踪6.4 标题子任务6.5 复选框子任务 org-mode 另一个用途是可以管理自己…目录1 创建任务文件2 设置基础任务状态3 捕获 - 快速记录任务4 事件优先级5 Timestamp时间戳5.1 基本形式5.2 重复间隔5.3 修改默认提醒时间5.4 重复事件的表示6 任务进度状态跟踪6.4 标题子任务6.5 复选框子任务org-mode 另一个用途是可以管理自己的任务清单。任务清单管理和日程管理是有区别的日程管理重点是“在什么时间做什么事”而任务清单管理重点则是“清空大脑让系统记住有哪些事需要做安排在什么时间做”。1 创建任务文件通常我们把任务放在专门的任务文件中便于归集和存档。我们使用 3 个文件分别记录任务task.org用于存储任务、日志journal.org用于写日志和便笺memos.org用于暂时存放还不能归类的东西。(defconstorg-agenda-dir(expand-file-nameagenda/org-directory))定义task.org文件的路径因为它多次被用到(defconstorg-agenda-file-tasks(expand-file-nametasks.orgorg-agenda-dir))因为任务条目可能需要在不同的类别间移动比如从 appointments 移动到 work设置目标位置(org-refile-targets((,org-agenda-file-tasks.(:maxlevel.1))(nil.(:maxlevel.1))))2 设置基础任务状态我们定义两组任务状态第一组未完成状态包括 TODO待做、NEXT下一个、DOING在做已完成状态包括 DONE完成另一组未完成状态包括 PENDING待定已完成状态包括 DELEGATED指派和 CANCELED取消。NEXT、DOING 可用于蕃茄工作法。;; 定义TODO关键词! 表示切换到该状态时会自动增加时间戳;; 表示切换到该状态时要求输入文字说明如果同时设定 和 使用“/!”;;; | 符号表示“完成”状态的分界线。(org-todo-keywords((sequenceTODO(t)NEXT(n!)DOING(i!)|DONE(d/!))(sequencePENDING(p/!)|DELEGATED(g/!)CANCELED(c/!))))将任务标记为 DONE 时自动记录时间并打开备注提示(org-log-donet)我们对不同的 TODO 关键字定义不同的外观(org-todo-keyword-faces;TODO关键词的外观((TODO.(:backgroundDarkOrange:foregroundblack:weightbold))(PENDING.(:backgroundLightGreen:foregroundgray:weightbold))(DONE.(:backgroundazure:foregroundDarkgreen:weightbold))(CANCELED.(:backgroundgray:foregroundblack))))任务状态需要按C-c C-t循环切换任务状态但这比较慢所以定义可以使用C-c C-t KEY通过菜单直接切换到对应状态。(org-use-fast-todo-selectiont);可使用 C-c C-t KEY 通过菜单直接切换到对应状态在操作状态转换时将状态转换记录放入 LOGbook 抽屉任务文件显得更清爽(org-log-into-drawert); 将状态转换记录放入 LOGbook 抽屉在切换任务状态时标题可以添加标签这可以通过设置org-todo-state-tags-triggers变量实现。(ACTIVE . t)表示添加(ACTIVE)表示删除。(org-todo-state-tags-triggers;状态改变时自动增删tags((DOING(ACTIVE.t))(done(ACTIVE))))3 捕获 - 快速记录任务“捕获”capture功能让你能随时随地、不打断当前工作流的情况下快速记录一个任务或想法。使用捕获功能需要设置捕获模板。捕获的任务和日程分别放在task.org文件的“Tasks”和“Appointments”标题下日志放在journal.org暂存放在memos.org。(tTodoentry(fileheadline,org-agenda-file-tasksTasks)*TODO%?\n Entered on %U\n %a)(aAppointmententry(fileheadline,org-agenda-file-tasksAppointments)* %? :APPNT:\n Entered on %U\n %a)(jJournalentry(fileolpdatetree,(expand-file-namejournal.orgorg-agenda-dir))* %?\n Entered on %U)(mMemoentry(file,(expand-file-namememos.orgorg-agenda-dir))* %?\n Entered on %U)4 事件优先级给事件赋予优先级是时间管理的一种重要思想。根据事件的重要性和紧急性可以用“四象限管理法”将事件划分为 4 类重要且紧急A、重要但不紧急(B)、紧急但不重要©、不紧急也不重要无标记。处理它们的原则是A 类必须减少它。如果你总有 A 类事情说明时间管理有问题。尽可能地把时间花在 B 类事情上以减少 A 类事件。C 类授权给别人做D 类尽量少做我们可以给任务清单添加优先级并配置不同的颜色(org-highest-priority?A)(org-lowest-priority?C)(org-default-priority?C)(org-priority-faces((?A.(:backgroundred:foregroundwhite:weightbold))(?B.(:backgroundDarkOrange:foregroundwhite:weightbold))(?C.(:backgroundyellow:foregroundDarkGreen:weightbold))))* [#A] 优先级最高 * [#B] 次高优先级 * [#C] 次次高优先级5 Timestamp时间戳时间戳分为活动时间戳active timestamp用尖括号包裹和不活动时间戳Inactive timestamp用方括号包裹。时间戳通常与 SCHEDULEDorg-schedule, C-c C-s和 DEADLINEorg-deadline, C-c C-d结合用于控制日程提醒方式当然我们也可以只使用 timestamporg-time-stamp, C-c .在日历中显示事件而不提醒。SCHEDULED表示计划时间DEADLINE表示截止时间而单纯的时间戳通常用来表示一个约会appointment。还有一种 inactive timestamporg-time-stamp-inactive, C-c !可用于记录事件的发生时间但不会显示在日历中比如记录任务完成时间。* SCHEDULEDD 任务 SCHEDULED: 2025-10-05 日 * DEADLINE 任务 DEADLINE: 2025-10-05 日 * 日程安排 2025-10-05 日DEADLINE 会在截止时间前就提醒SCHEDULED 则只会在计划时间点提醒。不管是 DEADLINE 还是 SCHEDULED都会在过期而没有被标记为完成时org-todo, C-c C-t显示过期提醒直到被标记为完成。对于设置为重复的事件标记完成并不会让任务彻底结束任务彻底完成不再重复需使用 org-agenda-todoC-​- 1 C-c C-t以数字前缀参数“-1”运行 org-agenda-todo结束重复事件。在设置时间戳时可以以天单位调整时间S-left/S-right也可以以周为单位S-up/S-down。还可以在设置时间戳时计算时间段的间隔C-c C-y。5.1 基本形式2022-09-17 六[2022-09-17 六]2022-09-17 六 14:002022-09-17 六 14:00-15:00两个时间戳用‘–’连接起来就定义了一个时间段2022-09-17 六--2022-09-18 日连续使用 C-c . 可以创建时间段。5.2 重复间隔重复间隔有3种表示每隔一个间隔重复一次每个间隔的事件都必须完成不能跳过不做表示每隔一个间隔重复一次如果前面有多个没做直接跳过.表示从完成的时间重新计算间隔。间隔可以是 hhour、dday、wweek、mmonth、yyear。当然还需要在这几个字母前面加上一个数字如2d, .2w 等。如果用 .3d/5d 这样的形式通常用于设置 habits表示最少每5天最多每3天执行一次。5.3 修改默认提醒时间在设置 Deadline 之后默认会提前一周开始每天在 agenda 界面里显示如果不需要提前这么久可以重新设置提醒时间* 只提前一天提醒 DEADLINE: 2022-09-17 六 -1d5.4 重复事件的表示重复事件的表示有多种方法使用 1w 这样的重复器问题是没办法指定终止点而且中间某个事件单独有变动的话没有办法更改使用 diary 方法问题是方法复杂且只有桌面 emacs 系统才能支持移动设备不支持使用复制多个事件的方法即使用 org-clone-subtree-with-time-shiftC-c C-x c来快速复制复制时可以指定复制次数和时间偏移非常方便。好处是可以单独某个事件而不会影响其他的不利的地方就是这多个事件之间没有关联性不能统一修改。TODO: 如果在复制的时候添加一个 Property指明这些事件实际是同一个事件那就可以统一进行修改了。使用 diary 可以表达比 orgmode 更复杂的日程安排但不能使用 orgmode 强大的日程处理能力。如果要导入 ics 文件可以在 scratch 中运行类似(icalendar-import-file /home/duhaibo/archives/2025/2025-26-1课表.ics ~/.emacs.d/diary)的代码即可自动导入 ics 文件中的日程安排。6 任务进度状态跟踪6.4 标题子任务org-mode 没有提供统计标题子任务完成进度的方法如果确实需要可以自己定义以下函数(defunmy/org-update-progress-percentage()计算当前标题的完成进度(interactive)(save-excursion(org-back-to-headingt)(let((level(org-outline-level))(total0)(done0));; 遍历所有子标题(org-map-entries(lambda()(when(and((org-outline-level)(1 level))(org-entry-get(point)ITEM))(cl-incftotal)(when(string(org-get-todo-state)DONE)(cl-incfdone))))niltree)(org-set-propertyPERCENTAGE(format[%d/%d]done total)))))比如有一个任务列表的执行状况如下* 项目任务 ** TODO 任务一 ** TODO 任务二 ** DONE 任务三 CLOSED: [2025-10-05 日 19:11] :LOGBOOK: - State DONE from [2025-10-05 日 19:11] :END:如果要统计这 3 项任务完成了几项就可以对标题“项目任务”使用自定义的my/org-update-progress-percentage函数来统计统计结果如下* 项目任务 :PROPERTIES: :PERCENTAGE: 1/3 :END: ** TODO 任务一 ** TODO 任务二 ** DONE 任务三 CLOSED: [2025-10-05 日 19:11] :LOGBOOK: - State DONE from [2025-10-05 日 19:11] :END:之所以把完成进度放在属性里而不是在标题后面加上方括号显示进度是因为在标题后面加方括号是有歧义的。标题下的列表的进度使用的是这个标记如果子标题也使用这个标记两个操作会相互冲突。6.5 复选框子任务对于以“[ ]”开头的列表 会被当作复选框。这样就形成了局部的子任务适用于将一个任务划分成几个简单的步骤或者将任务分派给不同的小组或员工。* 开发任务 [2/4] - [X] 需求分析 - [X] 技术设计 - [ ] 编码实现 - [ ] 测试验证我们不需要手动给列表添加复选框只需要在列表项上按C-c C-x C-rorg-toggle-radio-button即可给整个列表都加上复选框还会把光标所在的列表项标记为完成。如果还要给任务列表添加新项目可以按M-S-RETorg-insert-todo-heading。按C-c C-corg-toggle-checkbox会改变复选框的状态步骤的状态变化会自动改变上级步骤/任务的完成进度。如果各步骤是有顺序的则可以按C-c C-x oorg-toggle-ordered-property给标题添加ORDERED属性或取消这样列表就只能“逐步标记为完成”。如果手动更改了某些内容导致列表的完成进度显示有误可以按C-c #org-update-statistics-cookies刷新显示进度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询