组织捕获和计时行为不当

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(使用前将#替换为@)

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

  • Emacs 退出终端

    在 Emacs 中运行终端模式时使用M x term using C x C o我无法切换到另一个缓冲区来继续处理事情 我知道这是可能的M x shell但使用此命令时 shell 的某些方面不起作用 less more 手册页等 我想知道
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 并排镜像两个打开的缓冲区中的文件位置

    我试图在 emacs 中找到一个包 函数 它可以并排打开两个文件 使其位于同一行位置 镜像正在移动的缓冲区的移动 这意味着 对于并排打开的两个缓冲区 在其中一个缓冲区中移动 向上 向下翻页 移动光标等 将在另一个缓冲区中进行相同的移动 更具
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • Emacs/Swank/Paredit for Clojure 的温和教程

    我要转向 Emacs 来工作Clojure http en wikipedia org wiki Clojure Lisp 为了能够执行以下操作 我需要在 Emacs 上设置哪些信息 自动匹配 生成相应的右括号 自动缩进 Lisp Cloj
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • 如何在 emacs lua-mode 中配置缩进?

    完整的 emacs 新手在这里 我在 Ubuntu 上使用 emacs 23 1 1emacs 入门套件 https github com technomancy emacs starter kit 我主要在 lua 模式下工作 安装了pa
  • 如何使用 Emacs 通过 HTTP 打开远程文件?

    大多数开源软件都通过某些 HTTP 服务公开其代码 我想从 Emacs 打开并浏览此类代码 但 AFAICS trapmp 只允许ssh and ftp 因此 我的第一个问题是如何打开 HTTP URL 以便在 Emacs 中进行读取 然后
  • 将子目录添加到加载路径

    我希望能够自动加载它们 而不是单独指定插件目录中的每个子目录 为此 我将以下内容包含到我的 emacs 文件中 let base emacs d plugins normal top level add subdirs to load pa
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • Emacs 正则表达式:什么 \< 和 \> 可以做 \b 不能做的事情?

    正则表达式反斜杠 GNU Emacs 手册 http www gnu org software emacs manual html node emacs Regexp Backslash html说 lt 匹配单词的开头 gt 匹配单词末尾
  • ido-mode 绑定被全局设置键屏蔽

    堆栈溢出 在过去的几天里 我试图稍微定制一下我的 emacs 但我遇到了我不知道如何解决的问题 我想做的是定义一个全局键绑定和一个 ido 模式键绑定 它们将使用相同的键来做不同的事情 Ido 模式键绑定定义如下 defun ido my
  • SLIME 和 SWANK 入门:Lisp 连接意外关闭:连接被远程对等点断开

    我试图使用 slime connect 函数通过 sbcl 访问远程服务器 我遵循了 slime mov 电影中的所有步骤马可 巴林格 http www guba com watch 30000548671但在为 slime 创建 ssh
  • Emacs 打字骨架对插入也许

    在 Eclipse 中 编辑 Java 代码时 如果我输入一个左括号 我会得到一对括号 如果我然后 输入 第二个括号 它不会插入额外的括号 我如何在 emacs 中得到它 Eclipse 编辑器足够聪明 当我输入闭括号时 它知道我刚刚完成了
  • 使用 emacs24 通过 smtp 使用 gnutls 和额外参数发送电子邮件

    我在使用 posteo 电子邮件帐户从 emacs24 发送电子邮件时遇到了一个相当奇怪的问题 但使用 gmail 和 gmx 似乎一切正常 这是我当前 emacs 配置的相关部分 感觉就像我将其排列了一百万次 结果始终相同 require
  • 如何找到 emacs 中定义键绑定的位置?

    Somehow shift m是必然的Meta在 emacs 中键入 现在我无法输入任何以M like Mock 我想找出为什么会发生这种情况 或者是哪个包导致了这种情况 有一个问题 https stackoverflow com ques
  • ess-rdired:我收到此错误“现在没有 ESS 进程与此缓冲区关联”

    To use ess rdired为了浏览对象 我按照 ESS 手册并将以下内容添加到我的 emacs autoload ess rdired ess rdired View R objects in a dired like buffer
  • emacs 中用于 plink (putty) 的新 comint mod:符号的函数定义无效

    我想对 plink putty 使用新的 comint 模式 我将代码放在 init el 中 但是如果 M x run plink 我收到以下错误 let 符号的函数定义为 void comint check proc path defv
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色

随机推荐

  • 使用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 他是一个计