簡體   English   中英

使用Helm重命名文件時,Emacs`dired`錯誤:`apply`參數數目錯誤

[英]Emacs `dired` error when renaming file using Helm: `apply` wrong number of arguments

我不經常使用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回購問題列表,但未發現任何問題。 任何幫助,將不勝感激。

更新

按照Phil的建議,這是堆棧跟蹤:

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

helm github倉庫下似乎確實報告了類似的問題。 似乎頭盔和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))

但是仍然出現相同的錯誤。

乍一看,在我看來,這就像最新版頭盔中的錯誤一樣。

從MELPA安裝helm,我看到helm-read-file-name-handler-1接受8個參數:

(helm-read-file-name-handler-1 PROMPT DIR DEFAULT-FILENAME必須初始化初始預測名稱緩沖)

雖然helm--completing-read-default保證按照堆棧跟蹤用10調用它。

helm--completing-read-defaulthelm-completing-read-handlers-alist查找dired-do-rename ,並發現它已映射到helm-read-file-name-handler-1 然后,它會將處理程序識別為以Helm函數命名的名稱空間,並在此基礎上用另外兩個特定於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))

因此,此問題會影響所有這些煩人的命令。

您可以通過刪除所有這些來解決此問題。

例如: Mx customize-option RET helm-completing-read-handlers-alist

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM