У меня большой проект, и мне часто приходится работать и переключаться между несколькими каталогами. Мое решение состояло в том, чтобы собрать все файлы, которые я хочу быстро найти, в каталог песочницы.

Я просто использовал команду:

mklink sandbox/myfile.py somerealdirectory/myfile.py

Я хочу просто иметь возможность использовать Vim's

:e myfile

без необходимости беспокоиться о структуре каталогов.

Если я открою sandbox/myfile.py в vim, внесу некоторые изменения и сохраню изменения, как и ожидалось.

Однако, когда я пытаюсь записать второй раз, vim жалуется, что файл доступен только для чтения, и теперь он больше не будет записывать в правильный файл. Похоже, что символическая ссылка была уничтожена в процессе записи.

Я видел некоторые другие проблемы по этому поводу, но нет удовлетворительных ответов.

1 ответ1

2

Тебе не нужно делать такой ужасный хак.

Vim использует специальный подстановочный знак для "любого подкаталога": ** . Предположим, что ваш рабочий каталог - /path/to/project и у вас нет autochdir , вы можете перечислить и выбрать любой файл, содержащий foo в его имени файла, где бы он ни находился в рабочем каталоге, с помощью:

:e **/foo<Tab>

который предложил бы:

/path/to/project/dir1/dirb/foo.js
/path/to/project/dir1/dirb/dir5/dirx/barfoo.js
…

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .