英语法语西班牙语

Ad


OnWorks 网站图标

何时 - 在云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行

这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行时的命令

程序:

您的姓名


When - 一个简约的个人日历程序

概要


,尤其是

当 [选项] [命令]

基本思想就是在命令行输入“when”。 第一次运行
程序,它会提示您输入一些设置信息。 编辑您的日历文件
最喜欢的编辑器,做'when e'。 日历文件的基本格式是这样的:

2003年3月XNUMX日,飞往斯德哥尔摩领奖。

一旦你有一个日历文件,从命令中运行程序作为普通的“when”
line 会打印出你日历上接下来两周的事情。

指令


i 在日历上打印即将到来的项目。 (这是默认命令。)

c 打印上个月的日历(如挂历上的网格,不显示项目),
这个月,下个月。

e 调用您最喜欢的编辑器来编辑您的日历文件。

w,m,y 打印下一周、一个月或一年的项目,而不是默认的
两周的时间。

j 打印修改后的儒略日(用于查找两个
日期)。

d 除了当前日期什么都不打印。

配置


除了 --help 之外,以下所有选项都可以在首选项文件中设置。
True/false 选项可以在命令行上设置为 --option 或 --nooption,并在
通过将选项设置为 0 或 1 来设置首选项文件。

--help 打印简短的帮助消息。

- 版
打印一条简短消息,包括说明它的软件版本
是。

--语言=语言
将语言设置为 LANG。 请参阅以下有关国际化的部分。 这个
通常不需要选项,因为会自动检测语言。

--未来=DAYS
报告延伸到未来的天数。 默认值:14

--过去=天
报告延展到过去的天数。 就像 --future 选项一样,--past
被解释为相对于当前日期的偏移量,所以通常你会
希望这是一个负值。 默认值:-1

--日历=文件
您的日历文件。 默认是使用您的首选项指向的文件
文件,这是您第一次运行 When 时设置的。

--editor=命令
用于调用编辑器的命令。 默认值:“emacs -nw” 示例:当
--editor="vim"

--wrap=列
输出的文本列数(如果您根本不想换行,则为 0)。
默认值:80

--[否]wrap_auto
尝试检测终端的宽度,并设置输出的宽度
因此。 这仅在输出为 tty 时适用,并且受任何约束
由 --wrap_max 设置的最大值。 覆盖由 --wrap 设置的任何值。 默认值:否

--wrap_max=列
输出的最大文本列​​数(如果您不想要任何列,则为 -1
最大值)。 与 --wrap_auto 结合使用可保持非常清晰的可读性
大型终端窗口。 默认值:-1

--rows=列
适合终端窗口的文本行数。 在列出您的
日历,输出将被截断到这个长度,除非这会导致
上市后不到三天。 此行为被覆盖(
最大行数设置为无穷大)如果给出了 --future 选项
明确地,或者如果使用了 m 或 y 命令。 默认值:40

--[否]rows_auto
尝试检测终端的高度,而不是使用中设置的值
--rows 选项。 这仅适用于输出为 tty 的情况。 覆盖任何值
由 --rows 设置。 默认:是

--[无]标题
在 i、c、w、m 和 y 命令的输出顶部打印标题。 默认:


--[无]分页
当输出长于rows或rows_auto设置的值时,使用寻呼机
显示输出。 (考虑 PAGER 和 LESS 环境变量。如果
PAGER 未设置,默认为“less”。)默认值:yes

--paging_less_options
如果寻呼机“较少”,则额外选项。 默认值:“-rXFE”

--[否]filter_accents_on_output
是否将重音字符更改为非重音字符。 默认值:是,除非
$TERM 环境变量等于“mlterm”或“xterm”。

--[否]styled_output
如果输出是终端,我们是否应该使用 ANSI 终端代码进行样式设置?
默认:是

--[no]styled_output_if_not_tty
即使它不是终端,也要对输出进行样式设置。 默认值:否

--calendar_today_style=风格
--items_today_style=风格
第一个说在做日历时如何设计今天的日期 (c)
命令。 第二个说在做项目时如何设计“今天”这个词(i)
命令。 默认值:粗体

可以使用以下关键字指定输出的样式:bold、
下划线,闪烁。 要更改文本的颜色,请使用这些:fgblack、fgred、
fggreen、fgyellow、fgblue、fgpurple、fgcyan、fgwhite。 更改背景
color,使用相似的关键字,但使用 bg 而不是 fg。 例子:当
--calendar_today_style="bold,fgred,bgcyan" c

--预过滤器
在读取日历文件之前,通过程序将其管道化。 默认: ””

--now="YMD"
假设今天是另一个日期。

--[no]neighboring_months
“when c”的默认行为是打印上个月的日历,这
一个月,下个月。 通过选择--noneighboring_months,您可以避免打印
不包括在 --past 和 --future 设置的范围内的月份。

--[否]monday_first
从星期一开始一周,而不是从星期日开始。 默认值:否

--[无]orthodox_easter
根据东正教的日历计算复活节。 默认值:否

--[无]安培
使用 12 小时制而不是 24 小时制显示一天中的时间。 也影响
输入时间的解析。 默认:是

--auto_pm=x
当时间输入的小时数小于 x,并且 AM 或 PM 不是
明确指定,自动假定它们是 PM 而不是 AM。
默认值:0

--[no]literal_only
仅显示作为文字日期给出的项目,例如“2008 年 4 月 XNUMX 日”。 别
显示由表达式定义的项目,例如像“w=thu”这样的周期性项目。
默认值:否

--测试表达式
--裸版本
--make_filter_regex
--test_accent_filtering
这些选项在内部用于构建和测试。

商品描述


什么时候 是一个极其简单的个人日历程序,针对想要的 Unix 极客
简约的东西。 它可以跟踪您在特定日期需要做的事情。
有很多日历和“个人信息管理器”程序,所以
有什么理由使用 什么时候?

这是一个非常简短且简单的程序,因此您可以轻松地自行修改。
它不依赖于任何库,因此很容易安装。 你应该可以安装
它在任何可以使用 Perl 的系统上,即使您没有安装权限
库。
它的文件格式是一个简单的文本文件,您可以在您喜欢的编辑器中进行编辑。

尽管 什么时候 应该可以在几乎任何可以使用 Perl 的操作系统上运行,在
本文档我假设您正在运行某种 Unix。

安装 AND 抵达 已开始


以 root 身份登录后,执行以下命令:

使安装

运行 什么时候 第一次使用这个命令:

,尤其是

系统会提示您提供设置日历文件所需的一些信息。

用途


如果你跑步 什么时候 再次在初始设置运行后,它应该打印出一行
文本,告诉您当前日期。 它不会打印出任何其他内容,因为您的
日历文件是空的,所以你没有任何约会。

现在您可以开始将项目放入日历文件中。 每个项目都是一行文本
看起来像这样:

2003年3月XNUMX日,飞往斯德哥尔摩领奖。

使用以下命令可以方便地编辑日历文件:

当e

这会让您进入您最喜欢的编辑器(您在运行时选择的编辑器) 什么时候 为了第一
时间)。

日期必须采用年-月-日格式,但您可以拼写月份或给出月份
作为一个数字。 (月份名称不区分大小写,如果您代表
二月为 F、Fe、Feb、Februa 或其他。 它必须是一个独特的匹配。 你可以
给出一个尾随 .,它将被忽略。 在捷克语中,“cer”可以用作缩写
为 Cerven,“cec”为 Cervenec。)额外的空格被忽略,直到您进入
逗号后的实际文本。 空行和以# 符号开头的行将被忽略。

如果你现在跑 什么时候,它将打印出日历文件中所有项目的列表
落在一定的时间间隔内。 (间隔从昨天开始。 什么时候 尝试
选择时间间隔的结尾,使其输出适合您的终端窗口,但它
将始终至少为三天,并且不超过未来两周。)查看全部
你下个月的项目,做“当 m”,同样的一年,y,或单个
周,W。

如果你做 ``when c'', 什么时候 打印出上个月、本月和下个月的日历
一个月。

您可以组合这些命令。 例如,``when cw'' 将打印出日历,并且
然后向您展示下周的物品。

对于每年发生一次的事件,例如生日和纪念日,您可以使用
一个 * 代替年份,

* 25 月 XNUMX 日,圣诞节

或使用带星号的年份:

1920* 29 月 XNUMX 日,查理·帕克 (Charlie Parker) 转为 \a,出生于 \y

在第二个例子中,\a 告诉你查理帕克今年的年龄,而 \y
重现他出生的年份,即输出将是:

今天 2003 年 29 月 83 日查理·帕克 1920 岁,生于 XNUMX 年

对于你每周必须做的事情,你可以使用 w=xxx 形式的表达式,其中
xxx 是您的语言中星期几名称的前几个字母。 (你
必须提供足够的字母来消除歧义,例如,在英语中,w=th 或 w=tu,而不是
只是 w=t。)示例:

w=sun ,去教堂,10:00

实际上,您也可以进行比这更高级的测试; 有关更多信息,请参阅部分
下面的“花式测试”。 以下是设置一些常见假期的方法:

m=jan & w=mon & a=3 , 马丁路德金纪念日
* 14 月 XNUMX 日,情人节
m=feb & w=mon & a=3 ,华盛顿诞辰纪念日
m=may & w=sun & a=2 , 母亲节
m=may & w=mon & b=1 ,阵亡将士纪念日
m=jun & w=sun & a=3 , 父亲节
* 4 月 XNUMX 日,独立日
m=sep & w=mon & a=1 ,劳动节
m=oct & w=mon & a=2 ,哥伦布日
m=oct & w=mon & a=2 ,感恩节(加拿大)
* 11 月 XNUMX 日,停战日
m=nov & w=thu & a=4 ,感恩节(美国)
e=47 , 狂欢节
e=46 ,圣灰星期三
e=7 , 棕榈星期日
e=0 ,复活节周日
e=0-49 , Pentecost (复活节后49天)

在美国,当某些假期在周末时,联邦工作人员以及许多
私人雇员,周一或周五休息。 完整列表在
http://www.opm.gov/operating_status_schedules/fedhol/2011.asp. 如果你想提醒
假期和下班那天,这是一个如何设置的示例
那个:

* 4 月 XNUMX 日,独立日
m=jul & c=4 , 独立日(作为联邦假日)

国际化


什么时候 至少部分支持捷克语、丹麦语、荷兰语、英语、法语、德语、
希腊语、匈牙利语、意大利语、波兰语、罗马尼亚语、西班牙语和乌克兰语。 如果 什么时候 一直没有
翻译成您的语言,或仅部分翻译,尚未翻译的文本
已翻译将显示为英文。 什么时候 应该自动检测什么
您使用的语言(通过您的 $LANG 环境变量),如果 什么时候 已翻译
进入那种语言,这就是你会得到的—— 什么时候的输出将使用您的语言,并且
什么时候 还希望您在日历文件中使用该语言作为
月份和星期几。

您的日历文件必须是 UTF-8(或 ASCII,它是 UTF-8 的子集)。 如果你的
日历文件采用其他编码,例如 ISO-8859, 什么时候 通常能够
检测到,并拒绝阅读。 命令行选项也可以包含 UTF-8。

一些终端模拟器(aterm,...)将重音字符显示为垃圾,但其他
(mlterm, xterm...) 可以正确显示它们。 什么时候 检查 $TERM 环境
变量,如果它等于“mlterm”或“xterm”,那么重音字符将是
显示。 否则,它们会从输出中过滤掉。 您可以通过以下方式覆盖它
放一条线

输出上的过滤器口音 = 0

or

输出上的过滤器口音 = 1

在您的 ~/.when/首选项 文件。 我有兴趣听取任何可以的用户的意见
对此建议一种比尝试解释 $TERM 变量更好的机制。

在输入时,允许使用重音符号,但不是必需的,例如,在法语输入文件中,
日期 2005 Fev 17 可以用带重音的 e 或不带重音的 e 给出,并且要么
将工作。 如果输入的月份或星期几与您的
语言,然后 什么时候 将尝试将其解释为英语。

你可以放一条线

语言 = fr

在您的首选项文件中设置您的语言,或在
命令行,但如果您设置了 $LANG 环境变量,则不需要
正确。

FORMAT OF 喜好 文件


每行由如下内容组成:

变量 = 值

除了值内部,空格在任何地方都被忽略。 变量名是大小写-
麻木不仁。 空行被忽略。

了解更多 示例


登录时执行 shell 的一个有用命令是:

当 --past=0 --future=1

打印一整年的日历:

当 --past=0 --future=365 c

砰砰声 UP 日历 WHEN 登录 IN


如果你忘记每天看它,你的日历对你没有任何好处。 一个简单的方法
让它在你登录时弹出是让你的 .xsession 或 .xinitrc 文件看起来像
这个:

/usr/bin/when --past=0 --future=1 &>〜/when.today
emacs -geometry 70x25 -bg 浓汤 〜/when.today &
startkde

如果您的机器上设置了图形登录管理器,则使用 .xsession 文件,
.xinitrc 如果你不这样做。 在此示例中,第一行将您的日历输出到
文件。 完整路径 什么时候 程序是给定的,因为你的 shell 的路径变量
运行时尚未正确初始化。 第二行弹出一个GUI emacs
窗户,它有独特的颜色,以便吸引你的眼球。 最后一行
启动您的窗口管理器,在本例中为 KDE。 无论您使用什么窗口管理器,只要
确保在启动它的文件中保留预先存在的行,并确保
该行是文件中的最后一行。

排序 BY 时间 OF


如果您希望将一天中的各种项目以特定方式打印出来
顺序,最简单的方法是将它们按该顺序放入输入文件中。 那
但是,当某些项目位于由
表达而不是明确给出。 想要这样做的最常见原因
一种事情是你在一天中的某些时间需要做一些事情,并且
你希望它们按时间排序。 在这种情况下,你可以在开始时给一个时间
项目的文本,以及 什么时候 将识别并按时间对项目进行排序。 次可以
以 h:mm 或 hh:mm 格式。 如果设置了 --ampm,则可以使用可选的后缀 a 或 p
AM 或 PM,例如,9:30a 为 9:30 AM。 如果您使用 AM/PM 时间,那么您还可以,例如,设置
--auto_pm=9 以便自动将小于 9 的小时数假定为 PM。 这是一个
例:

2010 年 25 月 7 日 00:XNUMX 在无政府工团主义公社的晚餐
w=sun , 10:00 教堂

25 年 2010 月 XNUMX 日是星期日,因此在该日期将显示这两个项目。 如果
--auto_pm 设置为 8 或更高,那么 7:00 将自动解释为 7:00
PM,晚餐日期将显示在上午的教堂仪式下方。

FANCY 试验


除了上面讨论的 w 之外,您还可以测试许多其他变量:

w - 星期几
m - 月
d - 一个月中的第几天
y - 年
j - 修改后的儒略日数
a - 每月的前 1 天为 7,接下来的 2 天为 7,依此类推。
b - 1 表示该月的最后 7 天,2 表示前 7 天,依此类推。
c - 星期一或星期五,等于最近周末的月份中的某一天; 否则 -1
e - 距离今年(西方)复活节的天数
z - 一年中的第几天(元旦为 1)

您可以将月份指定为数字,m=2,或您的语言中的名称,m=feb。 你
也可以使用逻辑运算符 & (and) 和 | (或者)。 下面的例子提醒你
在每月的第一天和第十五天向您的员工支付工资:

d=1 | d=15 ,支付员工工资。

这个例子提醒你在每个月的最后一个星期六和你的乐队一起排练:

w=sat & b=1 ,与乐队排练。

下面两行

* 25 月 XNUMX 日,圣诞节
m=dec & d=25 , 圣诞节

两者都做完全相同的事情,但第一个版本更容易理解并且使
程序运行得更快。 (当你做测试时, 什么时候 每天都必须在
您要求的日期范围,并评估每一天的测试。 在我的机器上,
如果我使用一个包含 10 个简单测试的文件打印出一整年的日历,它
需要几秒钟。)也可以使用括号。

根据您的国籍和宗教信仰,您可能有很多假期
不要在固定的日期撒谎。 在基督教中,其中许多(“可移动的节日”)是
相对于复活节周日计算,这就是 e 变量有用的原因。

有一个不是运算符,!:

w=fri & !(m=dec & d=25) , 扑克游戏

有一个模运算符 % 和一个减法运算符 -。 使用这些,连同
j 变量,几乎不可能 什么时候执行以下操作的小解析器
壮举:

!(j%14-1) ,每隔一个星期三做点事情

这个愚蠢的小魔法背后的逻辑是这样的。 首先,我们确定,
使用命令`when j --now="2005 jan 26"',我们想要的第一个星期三
要做到这一点,儒略日等于 1,模 14。然后我们写这个表达式
如果星期三的儒略日等于 1,取模 14,则括号中的数量
将为零,取其逻辑否定将产生真值。

运算符的结合性和优先级顺序(从高到低)是这样的:

剩下 %
剩下 -
左 < > <= >=
左 = !=
对 !
剩下 &
左 |

包含 FILES


如果您的日历文件太大,您可能更愿意将其拆分为更小的块——
也许一个生日,一个西藏节日,等等。一个简单的方法来完成
这是安装程序m4,放行

预过滤器 = m4 -P

在您的首选项文件中,然后在您的日历文件中放置如下几行:

m4_include(/home/你的名字/.when/birthdays)

环境


$朗 自动检测用户的语言

$期限 尝试确定终端模拟器是否可以显示重音字符

使用 onworks.net 服务在线时使用


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad