我喜欢在 emacs 中使用 ido 模式以及使用运行 ido-list-directory 的 Cx Cd 列出目录。是否有启用 ido 模式操作的命令,但在当前点,如 dired-at-point。我经常使用它,但更喜欢使用 ido-dired-at-point 之类的东西。
不知道这是否已经实现,我只是在文档中找不到它,或者它是否易于实现。
看起来ido-list-directory
是用于交互式完成的list-directory
。因此,如果该点是文件名,而不是使用 ido,list-directory
则直接使用应该达到相同的最终结果。
像这样的东西怎么样:
(defun ido-ffap-list-directory ()
(interactive)
(let ((fap (ffap-guess-file-name-at-point)))
(if fap
(list-directory (file-name-directory fap))
(ido-list-directory))))
编辑:
或者,如果您想确认目录 @ 点(仅用于C-u
前缀),list-directory
请将上面的 sexp 替换为以下内容:
(defun ido-ffap-list-directory (&optional arg)
(interactive "P")
(let ((fap (ffap-guess-file-name-at-point)))
(if (null fap)
(ido-list-directory)
(if arg
(list-directory
(ido-read-directory-name "Directory: "
(file-name-directory fap)))
(list-directory (file-name-directory fap))))))
(setq ido-use-filename-at-point 'guess)