【问题标题】:emacs - find-name-dired - how to change default directoryemacs - find-name-dired - 如何更改默认目录
【发布时间】:2009-12-03 00:38:09
【问题描述】:

在 emacs 中,当您键入 M-x find-name-dired 时,它会给您两个提示。第一个是您要搜索的目录路径,第二个是您要搜索的文件模式。

如何更改它(在我的 .emacs 中)以使第一个提示始终是特定的项目目录?

另外,如何使文件名搜索不区分大小写?

【问题讨论】:

    标签: emacs dired


    【解决方案1】:

    要获得不同的起始目录,您可以建议函数使用不同的起始目录读取参数,如下所示:

    (defadvice find-name-dired (before find-name-dired-with-default-directory activate)
      "change the argument reading"
      (interactive
       (let ((default-directory "/some/path"))
         (call-interactively 'get-args-for-my-find-name-dired))))
    
    (defun get-args-for-my-find-name-dired (dir pattern)
      (interactive "DFind-name (directory): \nsFind-name (filename wildcard): ")
      (list dir pattern))
    

    然后你只需调用 my-find-name-dired。

    关于不区分大小写,可以自定义变量find-name-arg为不区分大小写的版本:

    (setq find-name-arg "-iname")
    

    【讨论】:

      【解决方案2】:

      我怀疑 Trey 的答案可能是优雅的,并且由于某些原因会在我尝试 grok 时伤害我的大脑(defadvice),但我会采取暴力简单的方法并使用以下方法:

      (setq my-dired-default-dir "/home/fred/lib")
      
      (defun my-find-name-dired (pattern)
        "My version of find-name-dired that always starts in my chosen folder"
        (interactive "Find Name (file name wildcard): ")
        (find-name-dired my-dired-default-dir pattern))
      

      我猜我用这种方法失去了历史,所以如果这对你很重要,那么 Trey 的方法会更好。

      这些天我不得不绕着头(defadvice)

      【讨论】:

      • 了解如何使用建议的最佳方法是阅读建议库本身开头(在 cmets 中)的教程。 M-x find-library advice RET 或在此处查看源代码:git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/…
      • 我同意,Trey 的有点超出了我的范围,而你的更有意义,尽管出于某种原因,你的默认模式是 ~/ (这不是要求目录,而是实际的文件模式)。 Pajato0,您能否对您的答案进行小幅编辑,以便我对其进行投票。投票似乎已锁定在您的答案上。
      【解决方案3】:

      在发布此问题后,我发现了另一种解决此问题的方法:

      (add-hook 'find file-hook
       (lambda ()
        (setq default-directory command-line-default-directory)))
      

      这保留了我启动 emacs 的默认目录(这很有用,因此您不必一直更改 emacs 中的项目目录)。

      实际上我认为它是说每次运行查找文件时,将默认目录更改为您的起始命令行目录。

      另一件事可能是设置一些默认目录: (setq my-default-directory "/home/rob/whatever")

      并将命令行默认目录替换为 my-default-directory/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-09
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        相关资源
        最近更新 更多