首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Helm重命名文件时Emacs`dired‘错误:`apply’错误的参数数

使用Helm重命名文件时Emacs`dired‘错误:`apply’错误的参数数
EN

Stack Overflow用户
提问于 2018-08-30 07:30:50
回答 1查看 0关注 0票数 0

我不dired经常使用模式,但试图用它练习一下。所以我创建了一些空的练习文本文件,并用通常的dired快捷键标记它们。然后我尝试使用“R”命令重命名文件 - 以便将文件移动到新文件夹。我得到这个奇怪的错误,操作没有成功。

apply: Wrong number of arguments: (8 . 8), 10 [3 times]

当我尝试使用“C”命令进行复制时,我遇到了同样的错误。但有趣的是,当我尝试用“D”删除时,问题不会发生。删除确实有效。所以似乎某个地方的apply功能被错误地使用了。

我在ubuntu linux 16.04 LTS上使用emacs版本25.3和Spacemacs版本0.200.13.x.

有没有人知道为什么会出现这种错误?由于dired是emacs核心的一部分,我想可能与不同的包或其他东西有一些冲突。我检查了spacemacs github repo问题列表,但没有看到任何提到的问题。任何帮助,将不胜感激。

更新

根据Phil的建议,这里是stacktrace:

Debugger entered--Lisp error: (wrong-number-of-arguments (8 . 8) 10)
  helm-read-file-name-handler-1("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil nil "dired-do-rename" "*helm-mode-dired-do-rename*")
  apply(helm-read-file-name-handler-1 ("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil nil "dired-do-rename" "*helm-mode-dired-do-rename*"))
  helm--completing-read-default("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil nil)
  apply(helm--completing-read-default ("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil nil))
  #f(advice-wrapper :override completing-read-default helm--completing-read-default)("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil nil)
  completing-read("Rename jarrett-iccv-09.pdf to: " read-file-name-internal file-exists-p nil "~/Downloads/" file-name-history nil)
  read-file-name-default("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil nil nil nil)
  read-file-name("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil nil nil nil)
  ido-read-file-name("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil nil nil nil)
  apply(ido-read-file-name ("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil nil nil nil))
  #f(advice-wrapper :override #f(advice-wrapper :override read-file-name-default helm--generic-read-file-name) ido-read-file-name)("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil nil nil nil)
  read-file-name("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil)
  apply(read-file-name ("Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil))
  dired-mark-pop-up(nil move ("jarrett-iccv-09.pdf") read-file-name "Rename jarrett-iccv-09.pdf to: " "/home/krishnab/Downloads/" nil)
  dired-mark-read-file-name("Rename %s to: " "/home/krishnab/Downloads/" move nil ("jarrett-iccv-09.pdf") nil)
  dired-do-create-files(move dired-rename-file "Move" nil t "Rename")
  dired-do-rename(nil)
  funcall-interactively(dired-do-rename nil)
  call-interactively(dired-do-rename nil nil)
  command-execute(dired-do-rename)

更新2

似乎在helmgithub存储库下报告了类似的问题。似乎helm和ido模式不兼容。

https://github.com/emacs-helm/helm/issues/1819

helm维基中也提到了这一点。

https://github.com/emacs-helm/helm/wiki#use-helm-mode-and-ido-mode

我尝试了一些他们的建议,比如添加

'(helm-completing-read-handlers-alist
   (quote
    ((find-file-read-only . ido)
     (find-alternate-file . nil))

但仍然得到同样的错误。

EN

Stack Overflow用户

发布于 2018-08-30 17:05:00

乍一看,这看起来像是当前版本的helm中的一个错误。

从MELPA安装helm,我看到它helm-read-file-name-handler-1接受8个参数:

(helm-read-file-name-handler-1 PROMPT DIR DEFAULT-FILENAME MUSTMATCH INITIAL PREDICATE NAME BUFFER)

虽然helm--completing-read-default保证按照堆栈跟踪调用10。

helm--completing-read-default查找dired-do-renamehelm-completing-read-handlers-alist发现其已被映射到helm-read-file-name-handler-1。然后它将处理程序识别为名称间隔为helm函数,并在此基础上使用另外2个特定于helm的参数调用它。

默认情况下,helm-completing-read-handlers-alist包括:

(dired-do-rename . helm-read-file-name-handler-1)
(dired-do-copy . helm-read-file-name-handler-1)
(dired-do-symlink . helm-read-file-name-handler-1)
(dired-do-relsymlink . helm-read-file-name-handler-1)
(dired-do-hardlink . helm-read-file-name-handler-1))

因此,此问题会影响所有这些dired命令。

你可以通过删除所有这些来预先解决这个问题。

如 M-x customize-option RET helm-completing-read-handlers-alist

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档