2

Скажем, у меня есть файл в какой-то непонятной директории, который я хочу открыть и отредактировать. Я не хочу делать что-то подобное ...

vim ~/foo/bar/blah/doh/ugh.txt

Я бы предпочел сказать, найти этот файл и открыть его. Я знаю, что есть такие команды, как locate и find чтобы найти файл или каталог, но я не уверен, могут ли они (или даже должны) использоваться в том, что я пытаюсь сделать. В принципе, как проще всего открыть файл с помощью программы без указания ее точного местоположения? (В случаях, когда во всей системе нет другого файла с таким же именем, и в случаях, когда их несколько).

3 ответа3

2

Это откроет все файлы (возможно, многие) с этим именем, которые были добавлены в базу данных при последнем запуске updatedb (обычно ежедневно). Это означает, что файлы, созданные с того времени, не будут найдены.

vim $(locate ugh.txt)

Если вы не предоставите начальный каталог для find , его использование может быть очень медленным. Он может все еще быть слишком медленным даже с начальным каталогом, если под ним много файлов. Это же предупреждение касается большого количества файлов.

vim $(find /pathto/startdir -name 'ugh.txt' -type f)

Любой из них может быть превращен в функцию для сокращения ввода:

viml () { vim $(locate "$@"); }

Затем используйте это так:

viml ugh.txt
1

Я думаю, что вам нужно это: эта полезная команда позволяет открывать только файлы, которые соответствуют определенному условию - в каталоге и во всех его подкаталогах.

vi `grep -rl 'example.js' *

или вы можете увидеть исходную ссылку

1

если вы находитесь на Zsh, то его просто

vim **/foo.txt

или вы можете просто ввести Vim и выполните следующие действия внутри Vim:

:e **/foo.txt<ENTER>

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