Emacs 中的日程管理

发布于 2023-03-18 22:32:01 字数 5794 浏览 4 评论 0

1 Calendar

通过 Emacs 提供的 calendar+Appointment 可以实现简单的日程管理功能,此外 Emacs 其实还提供了功能更强的 Org-mode,但该 mode 太过复杂,简单的日程管理无需用到这么复杂的东西。

1.1 定位日期

使用 M-x calendar 就可以调用 Emacs 的 calendar 功能,这时 Emacs 会打开一个显示了三个月(分别是前一个月、当前月、后一个月)信息的日历,光标自动放在表示今天的那个位置,Emacs 提供了大量的命令对光标所在的日期进行日程管理,默认情况下 calendar 将周日作为一周的第一天,我们可以通过更改变量 calendar-week-start 的值来设置以星期几作为一周的第一天

(setq calendar-week-start 1) ;设置星期一为每周的第一天

一般情况下我们可以直接用上下左右方向键移动光标到其他日期处,也可以直接用鼠标点击要定位的日期,此外 Emacs 也提供了其他的移动命令,如下表所示:

表1  移动命令
命令说明
C-f 或者 左方向键后一日
C-b 或者 右方向键前一日
C-n 或者 下方向键后一周
c-p 或者 上方向键前一周
M-}后一月
M-{前一月
C-x ]后一年
C-x [前一年
C-a移动到一周的开始
C-e移动到一周的末尾
M-a移动到一月的开始
M-e移动到一月的末尾
M-<移动到一年的开始
M->移动到一年的末尾

除了使用上诉的移动命令来定位日期外,Emacs 还提供了多个命令直接定位到指定的日期处:

  • 使用 g d 移动到指定的日期,在 calendar 下按下 g d 键后,在 minibuffer 提示我们依次输入年 月 日,Emacs 直接将光标定位到输入的日期处.
  • 使用 g D 移动到某年的指定天数处,在calendar下按下 g D 键后,在 minibuffer 提示我们依次输入年 该年的第几天,Emacs 将光标定位到指定的日期处,值得一提的是,输入天数时可以输入负数,如果输入的是负数,则表示还有多少天到年底.
  • 使用 . 移动到当前的日期处,在 calendar 下按下 . 键后,光标直接跳到代表今天的日期处.
  • 使用 g C 移动到指定的农历所表示的日期处,在 calendar 下按下 g C 键后,Emacs 提示你输入农历的信息,Emacs 将光标定位到指定的日期处.
表2  定位命令
命令说明
g d根据日期定位
g D根据天数
.移动到当前日期
g C定位到指定的阴历

1.2 添加代办事项

在Calendar中可以为指定的日期添加代办事项:

  • 使用i d命令为指定日期添加代办事项 在calendar中输入i d命令后,Emacs会打开一个教diary的文件,并自动填入光标所处的日期信息,我们只需要接着输入代办事项的信息并保存就可以了.
  • 使用i w命令为每周的某一天添加代办事项 我们可以使用i w命令建立每周例行任务
  • 使用i m命令为每月的某一天添加代办事项 我们可以使用i m命令建立每月例行任务
  • 使用i y命令为每年的某一天添加代变事项 我们可以使用i y命令建立每年的例行任务
  • 使用i a建立周年纪念日 跟i y命令类似,但calendar会记录起始年份
  • 使用i b命令为一个时间段添加代办事项 将光标和mark放置在一段时间的起始/结尾处,按下i b键,Calendar自动插入时间段的信息,我们只要输入待办事项的信息就行了
  • 使用i c命令定义一个循环事项 按下i c后,calendar提示输入循环间隔的日期,虽有Calendar自动插入代表循环的时间信息,我们只需要输入代变事项的信息就行了
表3  添加代办事项
命令说明
i d添加待办事项
i w添加每周例行任务
i m添加每月例行任务
i y添加每年例行任务
i a添加周年纪念日
i b为一段时间添加待办事项
i c添加循环事项

1.3 日期信息

将光标定位到指定的日期处后,Emacs还提供了一些命令来获取光标所处日期的信息. 常用到的命令有:

  • 使用p d命令显示光标所处日期是当年中的第几天
  • 使用p C命令显示光标所处日期的农历信息
  • M-=计算一段时间的天数 在要计算时间段的起始天数/结束天数用命令C-@定义为mark,然后将光标移动到时间段的结束天数/起始天数,这就定义了一个时间段区域,按下M-=后就会在minibuffer中显示该时间段包含的天数. 其中,该天数包含了起始天数和结束天数的.
  • 使用h命令查看光标所处日期的假期信息 如果光标所处的日期并没有假期,则Emacs在minibuffer提示No Holidays known,否则则显示该日期对应节假日的名字. Emacs内置了一些常见的节假日信息,另外,Emacs也提供了一些函数供我们自定义节假日:

    (holiday-fixed m d 节日名) ;定义m月的第d日为xx节假日
    (holiday-float m w n 节日名) ;定义m月的第w个星期的第n天为xx节假日,默认周日为第0日
    
  • 使用a命令查看所有三个月的假期信息 按下a键后,Emacs会在另一个窗口显示calendar中三个月期间内的所有节假日信息.
  • 使用x命令在calendar中标示出所有为节假日的日期来 若我们想让calendar自动标示出节假日的日期来,则更改calendar-mark-holidays-flag的值为非nil即可

    (setq calendar-mark-holidays-flag t)    ;让calendar自动标记出节假日的日期
    
  • 使用d命令显示光标当前日期的代办事项 可以在d命令前加上一个数字n,表示显示n天内的所有代办事项
  • 使用m命令在calendar中标记出所有记有待办事项的日期 该命令跟x类似,只是它标记出的是带有待办事项的日期. 同样的,你也可以通过更改变量calendar-mark-diary-entries-flag的值为非nil来让calendar自动标记出记有待办事项的日期.

    (setq calendar-mark-diary-entries-flag t)    ;让calendar自动标记出记有待办事项的日期
    

    值得一提的时,如果你将记录某项代办事项但却不想被标记出来,只需要在执行插入待办事项的命令前执行C-u就行了(就像C-u i d这样).

  • 使用u命令去除calendar中的标记
命令说明
p d显示当前日期是当年的第几天
p C显示当前日期的农历信息
M-=计算一段时间的天数
h查看当前日期的假期信息
a查看三个月内的所有节假日信息
x标记出 calendar 中所有为节假日的日期
d查看指定日期的待办事项
m标记出 calendar 中所有记有待办事项的日期
u清除 calendar 中的标记

1.4 导出为 HTML

Emacs提供了两个命令来将日历信息,节假日信息和待办事项信息一起导出成HTML文件供我们查看,这两个命令为:

命令说明
H m导出单月的日程安排信息
H y导出当年的每个月的日程安排信息

2 约会提醒功能

  • 用 M-x appt-activate 开启约会提醒功能 要使用约会提醒功能,先需要开启appointment通知功能,命令是M-x appt-activate
  • 随后使用 M-x appt-add 命令来添加一个约会提醒. 执行app-add命令后,在Emacs提醒你依次输入约会开始的时间,提醒的消息,和提前多少分钟开始提醒. 虽有在离约会还有指定分钟的时候,Emacs会在底部弹出一个窗口,窗口的内容显示了指定的提醒消息.
  • 使用 M-x appt-delete 来删除一个约会提醒 执行appt-delete后,Emacs依次显示所有添加的约会提醒,并询问是否删除,按y表示删除,按n表示保留
  • 在 mode-line 上显示约会提醒的倒计时 通过设置变量appt-display-mode-line的值为非nil,Emacs会在mode-line上显示还有多少分钟到下一个约会的倒计时.

    (setq appt-display-mode-line t)         ;在mode-line上显示还有多少分钟到约会的倒计时
    
    命令说明
    M-x appt-activate开启appointment提醒功能
    M-x appt-add添加一个约会提醒
    M-x appt-delete删除约会提醒

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

列表为空,暂无数据

关于作者

忆梦

暂无简介

0 文章
0 评论
1 人气
更多

推荐作者

柒七

文章 0 评论 0

今天小雨转甜

文章 0 评论 0

〃温暖了心ぐ

文章 0 评论 0

TangBin

文章 0 评论 0

狼性发作

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击“接受”或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文