【发布时间】:2016-06-23 11:21:37
【问题描述】:
不知何故,我无法让 emacs'ff-find-other-file 获取我的头文件。这是我所拥有的(最小示例):
cd ~/tmp
mkdir test
cd test
mkdir -p src/a/b inc/a/b
echo "aaaa" > src/a/b/a.cpp
echo "bbbb" > inc/a/b/a.hpp
tree
给予:
.
├── inc
│ └── a
│ └── b
│ └── a.hpp
└── src
└── a
└── b
└── a.cpp
这类似于我的项目结构。
emacs -Q src/a/b/a.cpp
然后将其复制到*scratch* 并使用C-x C-e 执行:
(setq cc-search-directories '("." "../inc" "../inc/*" "../../inc/*" "../../../inc/*" "/usr/include"))
在缓冲区a.cpp 中运行ff-find-other-file,只会在小缓冲区中产生提示:
Find or create a.hpp in: ~/tmp/test/src/a/b/
C-h v 在ff-search-directories 上返回cc-search-directories,在cc-search-directories 上我得到上面的列表。
我希望ff-find-other-file 查看../../../inc/*,并找到a.hpp。为什么不呢?
编辑:似乎是递归部分在这里不起作用。
之后:
cp inc/a/b/a.hpp inc/
a.hpp 是从a.cpp 中找到的。
关于ff-search-directories的帮助说:
星号不是通配符:它们与 前面的斜线。星号代表所有子目录,除了 `..',每个子目录都会被依次搜索。
请注意,此引用来自ff-search-directories 的帮助,而我修改的列表是cc-search-directories。我不明白为什么这会有所作为。
SO 上的这个和其他线程让我相信* 会递归搜索目录树。错了吗?
【问题讨论】:
标签: emacs