关于使用dired创建目录失败


下面是dired配置
;;set dired mode
(setq dired-recursive-delets 'always)
(setq dired-recursive-copies 'always)
(put 'dired-find-alternate-file 'disabled nil)

;; 主动加载 Dired Mode
;; (require 'dired)
;; (defined-key dired-mode-map (kbd "RET") 'dired-find-alternate-file)

;; 延迟加载
(with-eval-after-load 'dired
  (define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file))

;;seting dired-x
(require 'dired-x)

;;将另一个分屏自动设置成拷贝地址的目标
(setq dired-dwin-target 1)


(provide 'init_dired)


使用M-x dired-create-directory报错
Debugger entered--Lisp error: (error "No subdir-alist in *Directory*")
  signal(error ("No subdir-alist in *Directory*"))
  error("No subdir-alist in %s" #<buffer *Directory*>)
  dired-current-directory()
  byte-code("\300\301\302 \"C\207" [read-file-name "Create directory: " dired-current-directory] 3)
  call-interactively(dired-create-directory record nil)
  command-execute(dired-create-directory record)
  counsel-M-x-action("dired-create-directory")
  ivy-call()
  ivy-read("M-x " ("dired-create-directory" "projectile-invalidate-cache" "projectile-find-file-in-directory" "projectile-mode" "projectile-find-other-file" "projectile-ibuffer" "projectile-mode-menu" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "calc" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "mail" "mpuz" "ping" "pong" "smex" "talk" "term" "undo" "yank" "zone" "align" "chmod" "debug" "diary" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  (let ((externs (counsel--M-x-externs))) (ivy-read (counsel--M-x-prompt) (or externs obarray) :predicate (if externs (function counsel--M-x-externs-predicate) (counsel--M-x-make-predicate)) :require-match t :history (quote counsel-M-x-history) :action (function counsel-M-x-action) :keymap counsel-describe-map :initial-input initial-input :caller (quote counsel-M-x)))
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

在非 dired buffer 执行 dired-create-directory 是会报这样的错误(在 dired-current-directory 函数中)。

如果你在 dired buffer 执行命令或者按 + ,是可以创建目录的。

另外,你的配置第一行有“错别字”:

(setq dired-recursive-deletes 'always) ; 少写了一个 e

谢谢老哥提醒