emacs ff-find-other-file和ff-search-directories不是递归的 [英] emacs ff-find-other-file and ff-search-directories isn't recursive

查看:174
本文介绍了emacs ff-find-other-file和ff-search-directories不是递归的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们可以使ff-find-other-file在ff-search-directories中列出的目录中递归搜索。



而不是仅在/ usr中搜索/ include,它也会在/ usr / include / llvm中搜索。或者同样。

解决方案

我已将此函数添加到我的 .emacs 文件:

 (defun get-all-subdirectories(dir-list)
返回所有递归列表dir-list的子目录,
忽略名称开头的目录(点)
(split-string
(shell-command-to-string
(concatfind)
(mapconcat'identity dir-list)
-type d -not -regex \* / \\\ .. * \))))

而且,在我的 c-mode-common-hook ,我有这个:

 (setq ff-search-directories(get-all-subdirectories(listdirA dirB)))

这假设你有一个标准的Unix find 命令在您的 PATH 中。如果你在Windows上,可以在这里找到 find 的副本: http://unxutils.sourceforge.net/



如果您有许多目录可以递归,则需要一段时间才能运行。 p>

Can we make ff-find-other-file to search recursively in directories which are listed in ff-search-directories.

Instead of searching only in /usr/include, it would also search in /usr/include/llvm. Or likewise.

解决方案

I've added this function to my .emacs file:

(defun get-all-subdirectories(dir-list)
  "Returns a list of all recursive subdirectories of dir-list, 
   ignoring directories with names that start with . (dot)"
  (split-string 
   (shell-command-to-string 
     (concat "find " 
             (mapconcat 'identity dir-list " ")
             " -type d -not -regex \".*/\\\..*\""))))

And, in my c-mode-common-hook, I have this:

(setq ff-search-directories (get-all-subdirectories (list "dirA" "dirB")))

This assumes you have a standard Unix find command in your PATH. If you're on Windows, you can get a copy of find here: http://unxutils.sourceforge.net/

It takes a little while to run if you have many directories for it to recurse through.

这篇关于emacs ff-find-other-file和ff-search-directories不是递归的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆