Я пытаюсь заставить vim gf
работать с включаемыми файлами. Если путь локальный, все работает нормально. Но если ему нужно выполнить поиск по дереву каталогов и по указанному дереву, он не сможет найти файл.
То, что я хочу, легко продемонстрировать:
cd /some/src
mkdir -p a/long/path/down
mkdir -p a/long/path/again
touch a/long/path/down/util.h
echo '#include "a/long/path/down/util.h"' > a/long/path/again/file.cc
cd a/long/path/again
vim file.cc
В этом примере при компиляции я бы использовал -I/some/src
, чтобы при компиляции file.cc был найден a/long/path/down/util.h
.
Теперь в сеансе vim для file.cc
, где я нахожусь в каталоге a/long/path/down/
(обратите внимание на cd
выше), я делаю gf
на пути включения a/long/path/down/util.h
. Какая спецификация path
мне нужна, чтобы заставить это работать? Я предполагал, что это все, что мне нужно:
set path+=**
Все же я получаю:
E447: Can't find file "a/long/path/down/util.h" in path
Разве **
не должен заставить его искать вверх, вверх, вверх ... для a
, а затем обнаруживать, что a/long/path/down/util.h
есть?
В моем проекте у меня может быть несколько версий src/
в /some
, поэтому я хочу, чтобы поиск был относительным с pwd
. То есть set path+=/some/src
не подходит для меня.
Спасибо!