组织捕获和计时行为不当

2024-01-11

我相信你们中的一些人可能已经(从我最近提出的一系列问题中)了解到我正在 emacs 上设置组织模式并浏览 Brent Hansen 令人印象深刻的组织set up http://doc.norang.ca/org-mode.html。他是一个计时狂热者,我喜欢他所做的很多跟踪项目时间的事情。

我(认为)在设置方面没有搞砸,但是每当我尝试在任务中打卡时,我都会收到带有大量乱码的错误(如下所示)。我试图看看错误的出现是否有一些模式,但无法发现它们。它们似乎经常发生,但并非总是发生,这使得调试它们变得更加痛苦。

通常,当我下班打卡时(但有时我也打卡上班时),我会收到这样的消息

save-excursion: Wrong number of arguments: #[(drawer pos) "rÂ!
Ã!pq~bÄÅ    ÆQÇ\"$ÈÉ!+" [pos drawer markerp marker-buffer org-in-regexp "^[     ]*:" ":[    ]*
[   ]*:END:[    ]*
?" 2 replace-match ""] 4 ("/Users/krishnan/.emacs.d/elpa/org-20140210/org.elc" . 450779)], 1
[a-z..]:Set [SPC]:clear [2 times]

一如既往,我很乐意跟进可能有助于发现错误根源的问题。我无法辨别包含整个 .emacs 等是否是标准做法,但很高兴根据需要发布后续信息。

提前谢谢了!

edit 1:跟随 @iqbal-ansari ,我做了M-x toggle-debug-on-error会产生以下粘稠物:

Debugger entered--Lisp error: (wrong-number-of-arguments #[(drawer pos) "r\302!\203
\303!\202pq\210\212\214~\210b\210\304\305   \306Q\307\"\205$\310\311!+\207" [pos drawer markerp marker-buffer org-in-regexp "^[     ]*:" ":[    ]*
[   ]*:END:[    ]*
?" 2 replace-match ""] 4 ("/Users/krishnan/.emacs.d/elpa/org-20140210/org.elc" . 450779)] 1)
  org-remove-empty-drawer-at(307)
  (save-excursion (beginning-of-line 0) (org-remove-empty-drawer-at (point)))
  bh/remove-empty-drawer-on-clock-out()
  #[(f) " \207" [f] 1](bh/remove-empty-drawer-on-clock-out)
  mapc(#[(f) " \207" [f] 1] (org-clock-remove-empty-clock-drawer bh/remove-empty-drawer-on-clock-out bh/clock-out-maybe))
  byte-code("\306 \204\307\310\"    \311 \210\203\312\313\314\"\210\202\315\316!\210\f\2035\317\320r\321
!q\210@)\322\314\323%\2027A\324B!\322\211\211\211\211\211CDEFGHIAIJ\212\325 q\210\214~\210
b\210\326\327!\210\330\331KP!\203~\332\327!L\232\203~\332\333!H\202\216\203\212\312\313\322\"\210\202\216\334\335!\210\336\225b\210`\337 |\210\340c\210\341M\206\242I\342\343#G\344\345\346\347G!\"!\344\345\346\347H!\"!ZF\350F\351\245!EFE\351_ZF\350F\352\245!DF\211\352_ZF\353\354\355ED#\261\210N\205\364ED\\\336U\211C\203\326\327!\210`\337 |\210\330\356!\203d`TV\203\357\327!\210
\322\211\223\210O\322\211\223\210P\2033\360\361\322\211\211\211\362\363\314!\364Q&\210Q\203@\365Q!\210\322QR\203M\365R!\210\322R\307\310\"  A\203\234\212\366\314!\210\314\322ST\367A!\203\205\330U!\210A\332\333!!\211V\203\201\370V!\210)\202\233A\203\233\330W\331A\371R!\204\233\370A!\210+\311 \210\372\373\374E\352_D\\!\375QGC\203\267\376\202\270\377#\210XEYZ\232\203\335[\201]=\203\335S\203\335\307\201^E\"E\201_\201`E\"\210)\306 ?\205\362\322\211\\.\n\207" [global-mode-string org-frame-title-format-backup frame-title-format fail-quietly switch-to-state org-clock-marker org-clocking-p delq org-mode-line-string force-mode-line-update throw exit t user-error "No active clock" completing-read "Switch to state: " marker-buffer nil "DONE" org-current-time org-clocking-buffer beginning-of-line 1 looking-at "[  ]*" match-string 2 error "Clock start time is gone" 0 point-at-eol "--" org-insert-time-stamp with-hm inactive org-float-time apply encode-time org-parse-time-string floor 3600 60 " => " format "%2d:%02d" "\n" delete-char org-add-log-setup clock-out ...] 10)
  org-clock-out()
  org-clock-out-if-current()
  run-hooks(org-after-todo-state-change-hook)
  byte-code("\306\307!\210\310\311P!\203\312 \210\307\310\n!\203\313\225Sb\210\310\314\315Q!\204)\310\316!\210\304 \317 \304 @\320\216\321\322\323\307\211$*ABBCCDDE\313\232\203X\322E\324\202ZFF\325\326!G\313\224H\327G!I\330IJ\"\211KA@L\331K8M\332K8NG\206\212\333O\307PGQ\235\211RAST\203\303E\334\232\203\255U\335=\204\276E\204\303U\203\303U\335=\204\303\336 \202E\337\232\203\341U\203\324T\204\341\340\341\342\343Q\"\322\307$\202E\344=\203\376G\203\370S\205S@\202Q@\202E\345=\203/RQ\232?\205G\203\"\346QGSG\347#Q8\202Q#\350#!@)\202U\307=\203DE\351\232\203D\322\211E\206E\203\310E\333\232\203T\322\202E\352=\203_\322\202E\353=\203qM\206V@\202E\354=\203\210IW\235A@\206W@\202E\355=\203\246\356W!WIW\235A@\206\242W@)\202EQ\235@\206E;\203\275\357\360E\"\202\361E!SQ8\202R\204\330I\206Q@\202GN\232\203\344\322\202S\204\355\322\202L\362>\203XY=\203S@\202SG\313V\205M\206V@\202S@Z\363\364ZO#\206&Z\211Z\2034\365Z\365Q\2025\365[\366\367\370G\371Z\372
\257\\\322\211]^=\203\230GV\235?_\212\304 @\373\216\212\214~\210\374\375\\\"-\204\230\376\377!\203\201\357\201jGZ`$\210\202\230\201k\201jGZ`$\210\201l\201m\322\"\210\201n\f!\210\201o[\307\211#\210\201pH!\204\276\201k\201q\201r[!\"\210I\204\342\327Z!I\330IJ\"\211KA@L\331K8M\332K8NE\201s>\203\201k\201t\346aG\201u\330Za\"a>G#aG\201v\201w\330Za\"\365#$\210ZV\235?_ZV\235\205,GV\235?^A\203:\201xA!\210D\204DB\203\357F\307=\204\357E\201y>\204\357\330ZD\"A@\206g\347\330GD\"8\211]\324=\203{F\324=\203{\201z]Z\204\205b\203\232Z\203\244Zc\235\203\244Gc\235\204\244\201{\322\211\201|#\210^\203\324B\203\324\201{\201|\201} \"\210]\204\324B\324=\203\324\201~\353ZG\201\324%\210Z\203\357]\203\357\201~\201\200ZG\201]%\210\201\201Z!\210d\203e\204\201\202\322\307\"\210f\203\201\203 \210\201\204\201\205!\210E\203,ZV\235\204,\327Z!I\201\206\317 \201\207 \201\210I$\210^\203a\201\211\201g!\203Z\304 @\201\212\216\201\213 g*\201\214Z!\210\201\215 \203\235n\204\235\212\201\216\326!\210\310h!)\203\235`\347\211\225\206\204\326\225\\W\203\235\347\225\206\220\326\225b\210\310\365!\203\235\201\217 \210i\203\256\212\201\220\201i\\\"\210) \205\264\312 .\207" [org-comment-string commentp org-outline-regexp org-todo-regexp match-data startpos org-back-to-heading t looking-at "^\\*+ " org-toggle-comment 0 " +" "\\( +\\|[  ]*$\\)" "\\(?: *\\|[    ]*$\\)" point-at-bol ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) org-entry-get nil "LOGGING" note match-string 1 org-get-todo-sequence-head assoc 3 4 "" (4) prefix org-fast-todo-selection (4) org-icompleting-read "State: " mapcar list right left - 2 last (4) none done nextset previousset reverse user-error "State `%s' not valid in this file" prefix-numeric-value ...] 10)
  org-todo(nil)
  call-interactively(org-todo)
  org-agenda-todo(nil)
  call-interactively(org-agenda-todo nil nil)

The issue is caused by the line (org-remove-empty-drawer-at (point)) in the function bh/remove-empty-drawer-on-clock-out. If you read the documentation of the function org-remove-empty-drawer-at (do C-hforg-remove-empty-drawer-atRET, it says that the function accepts two arguments drawer and point while the function bh/remove-empty-drawer-on-clock-out passes only one argument (point). This causes the error you reported. It seems the code was written for an older version of org-mode.

这是临时解决方案,删除该行

(add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append)

从你的 init 文件(并重新启动 emacs)。这将消除错误。

UPDATE

我(我认为)找到了问题的永久解决方案。函数的第一个参数org-remove-empty-drawer-at是要从 Brent Hansen 中删除的抽屉的名称setup http://doc.norang.ca/org-mode#CaptureTemplates看来他想删除空的“LOGBOOK”抽屉,在这种情况下修改功能bh/remove-empty-drawer-on-clock-out如下

(defun bh/remove-empty-drawer-on-clock-out ()
  (interactive)
  (save-excursion
    (beginning-of-line 0)
    (org-remove-empty-drawer-at "LOGBOOK" (point))))

请注意,参数“LOGBOOK”已添加到函数调用中org-remove-empty-drawer-at。现在您也不需要删除该行

(add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append)

从你的初始化文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组织捕获和计时行为不当 的相关文章

随机推荐

  • 使用Fresco时如何将图像保存到SD卡?

    我在用Fresco http frescolib org 在我的应用程序中下载并显示 Gif 我想在单击时将图像保存到 SD 卡 但我不知道该怎么做 final View view inflater inflate R layout fra
  • 如何使用GCM成功“在客户端生成通知密钥”? [复制]

    这个问题在这里已经有答案了 我按照以下说明进行操作 但响应始终是 HTTP 401 未经授权 我已验证ID令牌 注册ID和项目ID 编号 均有效 遗憾的是 回复中没有提供详细原因 https developer android com go
  • 如何在 HttpModule 中执行 XSLT 转换?

    我一直在尝试将服务器端 XSLT 转换实现为 IIS HttpModule 我的基本方法是在 BeginRequest 处安装一个新的过滤器 将写入转移到 MemoryStream 中 然后在 PreSendRequestContent 处
  • 如何单击或双击网页上的某个单词来触发事件处理程序?

    对于像这样的页面 http www answers com http www answers com 如果用户双击页面中的任何单词 将会出现一个弹出框并显示该单词的定义 我可以想出一种方法 使用 DOM 脚本来分解页面中的所有单词 然后使每
  • Android - 创建带有事件的自定义日历

    我有一个显示特殊日子的应用程序 我想将它们整合到日历中 这些事件是静态的 不会改变 所以我不必经常更新日历 我首先想到创建一个本地日历并添加事件 但新的 Android 版本 自 2 3 起 似乎不支持这一点 要实现我必须创建一个日历提供程
  • 本文中的“本地数据缓存”是什么意思?

    摘自以下正文 http developer yahoo com hadoop tutorial module2 html 它提到顺序可读的大文件不适合本地缓存 但我不明白本地是什么意思 我认为有两个假设 一是Client缓存来自HDFS的数
  • 编译器能够优化意大利面条式代码吗?

    我正在编写一个最后生成 C 代码的编译器 我无法使用while for或任何其他正常循环 所以我将其翻译为goto if和像这样的作业 调用行 if i
  • Lollipop 下面的 Material Design 支持 - 崩溃

    我一直在尝试实现材料设计主题 如下这些说明 http android developers blogspot co il 2014 10 appcompat v21 material design for pre html 我没有使用Too
  • 如何处理 Fish 中的 null_glob 结果?

    我有一个包含以下内容的鱼函数rm陈述 rm path to dir log 如果该路径中有 log 文件 则该语句可以正常工作 但如果没有 log 文件 则该语句将失败 错误是 config fish functions myfunc fi
  • 如何查明工作项更改集文件项是否是新添加或修改的?

    我有一些更改集对象 我需要查明更改集中的文件是否是新添加或修改的 下面是我用来获取更改集的代码 IChangeSetHandle changeSets convertToChangeSetHandles extracted changeSe
  • 如何正确地将图像插入带有 URL 的 BIRT 报告中?

    我使用 Eclipse 中的 URL 将来自 Web 的图像插入到 BIRT 报告中 但它不起作用 它在布局屏幕上显示一个小红色 X 如果我选择运行 查看报告 作为 PDF 它会显示 无法访问此报告项目的资源 这里有什么问题 我用谷歌搜索了
  • 如何在Python中将数组分割成给定长度的块? [复制]

    这个问题在这里已经有答案了 什么是最快和最短的方法来扭转这个 ids 1 2 3 4 5 6 7 8 9 例如 ids 1 2 3 4 5 6 7 8 9 通过给出输入2作为固定长度 当然 有一些简单的方法可以做到这一点 但我认为它们都不是
  • AppleScript:将安装的文件夹添加到 Finder 侧边栏?

    我有一个简单的 Apple 脚本来安装文件夹 mount volume smb machineip folder 它在启动时运行 因为 Mac OS X 10 5 5 没有像 Windows 那样的映射驱动器的概念 但剧本并没有达到我想要的
  • 如何在 MongoDB 中对集合记录内的数组进行排序?

    我有一组学生 每个学生都有如下所示的记录 我想对它们进行排序scores数组按降序排列score 这个咒语在 mongo shell 上是什么样子的 gt db students find id 1 pretty id 1 name Aur
  • 动态变量 Jekyll Liquid

    我想在 jekyll Liquid 安装中使用动态变量 我想使用动态变量动态访问 config yml 文件 名称 最好用一个例子来解释 Page layout default title title homepage 默认布局 site
  • 如何用Java更新MongoDb数据库?

    我是 MongoDb 的新手 有很多关于在 2 x 版本中更新集合的示例 但我找不到任何关于 3 x 版本的来源 Java代码 MongoClient mongoClient new MongoClient localhost 27017
  • 调整大小时避免在两个单词之间断行[重复]

    这个问题在这里已经有答案了 我有一个字符串 我需要它不要破坏不同行中的两个特定单词 例子 Ask for it it when contracting until 2016 09 30 with T 2 Rate 当我调整窗口大小并使其变小
  • Firebase 身份验证在应用删除后仍然存在? [复制]

    这个问题在这里已经有答案了 我刚刚发布了一个应用程序 它使用 Firebase 身份验证和 Gmail 来对用户进行身份验证 我注意到 如果有人登录然后删除该应用程序 如果他们重新下载该应用程序 他们仍然会使用 Firebase 登录 在我
  • 以编程方式重新启动 React Native 应用程序

    是否可以在不编写任何本机代码的情况下以编程方式重新启动 React Native 应用程序 例如 我从答案中知道这个问题 https stackoverflow com questions 15564614 how to restart a
  • 组织捕获和计时行为不当

    我相信你们中的一些人可能已经 从我最近提出的一系列问题中 了解到我正在 emacs 上设置组织模式并浏览 Brent Hansen 令人印象深刻的组织set up http doc norang ca org mode html 他是一个计