Doom-emacs: 首次使用“组织捕获”时出现“ overlayp”错误

创建于 2019-05-10  ·  33评论  ·  资料来源: hlissner/doom-emacs

嘿,

我假设您一定不会遇到此错误,因为您已经设置了文件,但是第一次执行<spc> X然后输入诸如待办事项或便笺之类的内容时,会出现overlayp is nil错误每次按空格键都可以输入注释(它还会插入新行或返回到行首)。

您仍然可以按C-c C-c来完成便笺,这将创建todo.orgnotes.org文件,并且从现在开始不会发生错误。

所以我想复制的步骤是:

  • 核对您的todo.orgnotes.org
  • 然后尝试根据您的裸体创建TODO或便笺
  • 开始输入您的待办事项/注释的标题,按空格键,查看错误

给定消息日志中的错误为,这可能是yasnippet中的上游错误:

yas--snapshot-overlay-location: Wrong type argument: overlayp, nil [2 times]
:editor file-templates :lang org bug resolved

所有33条评论

我可以确认。 此外,我的第一个todo.org和第一个notes.org文件也发生了。 文件存在后再也不会出现。

我想我终于找到了这个问题。 您能否尝试以下方法来解决问题?

(add-hook 'org-capture-mode-hook #'yas-abort-snippet)

21cf1c2应该可以解决此问题。 如果不是这种情况,请告诉我,我将重新打开此问题。 感谢您引起我的注意!

@hlissner ,@ home,我会做。 忙碌的一天...

不,没有修复它。

正在使用ae365272。

嗯,在那种情况下,我无法再复制它。 回到绘图板!

它是邪恶的。 我只是

mv org org_bak
  • 重新启动Emacs( <Space> h R不会重现它!)

<Space> X>

键入->会产生这种奇怪的行为。

可以肯定地说是第二次转载。

mv org_bak org解决了该问题。 以防万一,这里是我的config.el相关部分:

;;
;;; :lang org
(after! org
  (add-to-list 'org-modules 'org-habit t))

;; Pop-rule
(after! org
  (set-popup-rule! "^\\*Org Agenda.*\\*$" :size 0.5 :side 'right :vslot 1  :select t :quit t   :ttl nil :modeline nil :autosave t)
  (set-popup-rule! "^CAPTURE.*\\.org$"    :size 0.4 :side 'bottom          :select t                                  :autosave t))

;; automatically redisplay images generated by babel
(add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images)

;; place latex-captions below figures and tables
(setq org-latex-caption-above nil)

(setq org-directory "~/org/"
      org-agenda-files (list org-directory)
      org-ellipsis " ▼ "

      ;; The standard unicode characters are usually misaligned depending on the
      ;; font. This bugs me. Markdown #-marks for headlines are more elegant.
      org-bullets-bullet-list '("#"))

;; Org-Noter
(def-package! org-noter
  :defer t
  :after org-mode
  :config
  (map!
   (:leader
     (:prefix "n"
       :desc "Org-noter-insert" :n "i" #'org-noter-insert-note))))

;; Setup
(setq org-noter-always-create-frame nil
      org-noter-auto-save-last-location t)

@rscircus做同样的事情,没有任何效果。 您可以提供M-x doom/info吗?

```

  • 作业系统:gnu / linux(x86_64-pc-linux-gnu)
  • Emacs:25.3.2(2018年4月19日)
  • 毁灭战士:2.0.9(HEAD->开发,_upgrade / develop AE365272 2019-06-18 11:46:27 +0200)
  • 图形显示:t(守护程序:nil)
  • 系统功能:XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11模块
  • 细节:
    elisp env bootstrapper: nil elc count: 0 uname -a: Linux 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 modules: (:tools eval :editor evil file-templates :tools lookup :editor snippets :tools flyspell flycheck :ui workspaces :completion company helm :ui doom doom-dashboard modeline doom-quit ophints hl-todo nav-flash treemacs (popup +all +defaults) vc-gutter vi-tilde-fringe window-select :editor multiple-cursors rotate-text :emacs dired electric :editor fold :term term :emacs vc :tools editorconfig ein make magit tmux upload :lang clojure data emacs-lisp go (java +meghanada) javascript julia lua markdown (org +attach +babel +capture +habit +export +present) python rest (sh +fish) web :config default) packages: (emojify org-pomodoro org-noter writeroom-mode esh-autosuggest fish-completion) exec-path: (/home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin ~/.cargo/bin ~/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin /usr/lib/x86_64-linux-gnu/emacs/25.3/x86_64-linux-gnu)

有关我的配置的更多详细信息: https :

老实说,修复程序是一个非常简单且必要的步骤,因此,如果您有更重要的事情要做,那么那些真正想深入研究emacs的人将会发现此问题。 ;)

我有同样的问题,但我不太了解此处提供的解决方法。 org_bak如何发挥作用? 我不将~/org用作目录组织文件,是否需要类似的解决方法?

@rgrinberg以我的理解,当您调用org-capture而您的org-capture目标文件不存在时,它必须创建一个。 创建空的组织文件后,将使用yasnippet扩展组织文件模板(通过:editor file-templates模块)。 通常,这会在代码段中的所有可编辑区域上创建覆盖图-但是,org-capture对于用户如何与该组织文件进行交互有自己的想法:缩小它的范围,以便展开的代码段(以及这些覆盖图)不再可见。 Yasnippet尝试与仅存在一次的这些叠加层进行交互,以发现它们已消失,并抛出类型错误,抱怨它期望一个叠加层。 因此,错误。

不幸的是,文件模板模块对此无能为力,因为在逻辑运行时无法检测到“该组织文件将用于组织捕获缓冲区”。

说到@rscircus ,您是否还在遇到此问题?

@rgrinberg我认为,您必须阅读整个线程,但它可能仍然令人困惑。 因此,基本上,这种奇怪的行为在通过(setq org-directory“ / path / to / org /”)和todo.org或捕获存在的任何位置消失。 在上面的讨论中,我四处移动org-directory进行检查。 解决方法是手动创建该目录和文件,这种不良行为已消失。 希望,这也回答了您的问题,@ hlissner?

@rscircus禁用:editor file-templates模块是否可以解决此问题?

好吧,首先要做的是:

feb9799f (2017-07-12)上,该错误仍然存​​在。 移动org-directory并让emacs尝试创建它会导致与@Ptival描述的行为相同。

同样在de85f67b (2017-07-14)上。

init.el中禁用:editor file-templates没有帮助。

同样,帮助的是创建捕获文件。

@rscircus能否从错误中产生回溯? 例如,使用SPC h d d (或M-x doom/toggle-debug-mode )启用调试模式,然后重新创建错误。

image

我击中<space>的那一刻! 猜猜您在某处添加了断点?

@rscircus嗯,那没什么M-x doom/info吗?

```

  • 作业系统:gnu / linux(x86_64-pc-linux-gnu)
  • 外壳:/ bin / zsh
  • Emacs:26.2(2019年4月12日)
  • 毁灭战士:2.0.9(HEAD->开发,起源/开发de85f67b 2019-07-14 05:35:51 +0200)
  • 图形显示:t(守护程序:nil)
  • 系统功能:XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIMB MODULES THREADS LCMS IDS
  • 细节:
    elisp env bootstrapper: envvar-file elc count: 0 uname -a: Linux 4.15.0-51-generic #55-Ubuntu SMP Wed May 15 14:27:21 UTC 2019 x86_64 modules: (:completion company ivy :ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces :editor evil file-templates fold multiple-cursors rotate-text snippets :emacs dired electric vc :tools eval flycheck (lookup +docsets) magit :lang data emacs-lisp markdown (org +dragndrop +ipython +pandoc +present) sh :config default) packages: (emojify org-pomodoro org-noter org-trello writeroom-mode esh-autosuggest fish-completion) exec-path: (~/.cargo/bin ~/.local/bin /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin ~/.emacs.d/bin ~/local/bin ~/local/bin ~/local/bin ~/local/bin ~/.cargo/bin ~/.local/share/umake/bin ~/.cargo/bin ~/.local/bin /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin ~/.emacs.d/bin ~/.local/share/anaconda3/bin ~/.sdkman/candidates/java/current/bin ~/local/bin ~/local/bin ~/.cargo/bin ~/.local/share/umake/bin ~/.cargo/bin /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin ~/.local/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin ~/bin /usr/lib/jvm/java-11-openjdk-amd64/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin ~/.local/bin ~/local/src/go/bin ~/.fzf/bin /snap/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin ~/.local/bin ~/local/src/go/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin /usr/local/bin/ /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/local/sbin ~/dotfiles/bin ~/.local/bin ~/local/src/go/bin /snap/bin /usr/lib/x86_64-linux-gnu/emacs/26.2/x86_64-linux-gnu/)

当您禁用:editor file-templates ,是否在重新启动Emacs并对其进行测试之前运行doom refresh

有趣的是,我多久触发一次vim来(查找)修复emacs :joy:今天。

好吧,正如您猜对的那样,在修改init.el之后,我并没有doom refresh init.el

是的,没有:editor file-template东西可以按设计工作。

我相信fb619bd提供了解决此问题的方法。 有人可以测试一下,让我知道是否是这种情况吗?

我相信这还没有解决。 这是一个新的堆栈跟踪:

Debugger entered--Lisp error: (wrong-type-argument overlayp nil)
  overlay-start(nil)
  yas--snapshot-overlay-location(nil 54 168)
  yas--auto-fill()
  internal-auto-fill()
  self-insert-command(1)
  newline(nil t)
  (if (and (sp-point-in-comment) comment-line-break-function) (funcall comment-line-break-function) (delete-horizontal-space t) (newline nil t) (indent-according-to-mode))
  +default--newline-indent-and-continue-comments-a()
  apply(+default--newline-indent-and-continue-comments-a nil)
  newline-and-indent()
  org-return(t)
  #f(compiled-function () (interactive nil) #<bytecode 0x404ac0d1>)()
  apply(#f(compiled-function () (interactive nil) #<bytecode 0x404ac0d1>) nil)
  org-return-indent()
  funcall-interactively(org-return-indent)
  call-interactively(org-return-indent nil nil)
  command-execute(org-return-indent)

@rgrinberg我仍然无法重现此内容。 您可以分享您的org-capture-templates吗?

(("t" "Personal todo" entry
  (file+headline +org-capture-todo-file "Inbox")
  "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
 ("n" "Personal notes" entry
  (file+headline +org-capture-notes-file "Inbox")
  "* %u %?\n%i\n%a" :prepend t :kill-buffer t)
 ("p" "Templates for projects")
 ("pt" "Project todo" entry
  (file+headline +org-capture-project-todo-file "Inbox")
  "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
 ("pn" "Project notes" entry
  (file+headline +org-capture-project-notes-file "Inbox")
  "* TODO %?\n%i\n%a" :prepend t :kill-buffer t)
 ("pc" "Project changelog" entry
  (file+headline +org-capture-project-notes-file "Unreleased")
  "* TODO %?\n%i\n%a" :prepend t :kill-buffer t))

我不确定这是否与临时政府有关。 我从来没有自定义我的模板,这不是我可以始终如一地重现的问题,因此根目录似乎是另外一回事。

不,我不在Emacs 27上。此处是Emacs 26.3 :)
2019年10月30日01:22 + 0900,Henrik Lissner [email protected]写道:

@rgrinberg我仍然无法重现此内容。 您能分享您的org-capture-templates吗?
-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看或取消订阅。

@rgrinberg fd00870应该最终解决此问题。 如果不是这种情况,请告诉我,我将重新讨论该问题。

感谢您对此的支持。 我会告诉你是否可以复制
在2019年11月2日凌晨2:21 + 0900,Henrik Lissner [email protected]写道:

@rgrinberg fd00870应该最终解决此问题。 如果不是这种情况,请告诉我,我将重新讨论该问题。
-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看或取消订阅。

从037bcf3开始,我已经针对此类文件模板扩展问题实施了新的解决方法。 这也应该解决这个问题,但是如果不是这种情况,请在这里告诉我。

此页面是否有帮助?
0 / 5 - 0 等级