Использование SublimeText3, как открыть все файлы с таким же именем - PullRequest
0 голосов
/ 24 августа 2018

У меня была ситуация, когда я хотел просмотреть все файлы с одинаковыми именами (например, все файлы с именем index.js).

Я закончил тем, что открывал их по одному ... но, может быть, я мог бы открыть их все сразу ...?

Альтернативная стратегия

Я нашел какой-то поисковый термин, который существовал во всех этих файлах, и это помогло идентифицировать все файлы (по крайней мере, я на это надеюсь), и это казалось немного проще, чем повторное открытие файлов с cmd-p ...

1 Ответ

0 голосов
/ 24 августа 2018

Прямо из Sublime нет способа по умолчанию, который позволял бы вам открывать сразу несколько файлов.Можно добавить такую ​​функциональность через плагин / внешний пакет.Насколько мне известно, в настоящее время нет ничего похожего на Package Control , но там много пакетов, которые вполне могут быть скрыты.

Написать такой плагин довольно простоВ целом, поскольку Sublime выполняет большую часть тяжелой работы, но для этого требуется знание Python.Более сложной задачей было бы выяснить, какие файлы должны быть открыты.

С другой стороны, Sublime поставляется с вспомогательным инструментом командной строки под названием subl, который обращается к рабочей копии Sublime и запускает ее при необходимости.Предполагая, что он доступен по вашему пути, можно открыть все файлы JavaScript в определенной папке.

tmartin:dart:~> subl *.js

Это откроет все соответствующие файлы в последнем активном окне Sublime;Вы можете включить -n, чтобы сообщить Sublime, что он должен сначала открыть новое окно и поместить туда файлы:

tmartin:dart:~> subl -n *.js

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

См. subl --help для получения дополнительной информации о других доступных параметрах, включая открытие файлов в точном месте.


[ПРАВКА]

Есливы используете Linux или MacOS, вы можете расширить эту технику, чтобы открывать файлы в подпапках текущей папки, несколькими способами.

ПРИМЕЧАНИЕ: Следующее не относится к Windows (по крайней мере, в стандартных командных приглашениях), потому что Windows сама не раскрывает файловые глобусы, и Sublime должен делать это сам, что он может делать для простых глобальных файлов, таких как *.js, ноне для более сложных, которые включают в себя папки.

Если у вас мелкая структура папок, вы можете включить несколько терминов в командной строке.Например, если есть только один уровень каталога:

tmartin:dart:~> subl -n *.js */*.js

Если существует два уровня каталога, вам нужно включить другой термин, чтобы соответствовать этому из-за правил глобализации оболочки:

tmartin:dart:~> subl -n *.js */*.js */*/*.js

Для всего, кроме одного или двух уровней, это довольно утомительно и подвержено ошибкам, и в этом случае я бы рекомендовал вместо этого использовать утилиту find:

tmartin:dart:~> subl -n `find . -name '*.js'`

Здесь команда findищет в текущей папке (.) все файлы с именами, совпадающими с *.js, что она делает рекурсивно.Как только это будет сделано, результаты помещаются в строку.Обратите внимание, что важно обернуть глобус в 'single quotes', чтобы сказать оболочке, что он не должен пытаться развернуть их сам.

Обратные метки вокруг команды find говорят оболочке выполнить это сначала, а затемиспользуйте результат в качестве аргументов команды subl -n.

Результаты операции поиска относятся к начальной точке, поэтому вы также можете сделать что-то вроде find /Users/tmartin/projects/*.js из любого места, чтобы найти все подходящиефайлы.

В Windows нет утилиты find, которая работает так же, как эта, но с помощью небольшого пакетного файла кунг-фу вы можете создать пакетный файл, который выполняет те же действия:

@ECHO OFF

IF "%~1" == "" GOTO ERROR
subl -n
FOR /f "usebackq tokens=*" %%a IN (`dir %* /b/s`) DO subl "%%a"

GOTO DONE

:ERROR
ECHO Provide a file glob on the command line.

:DONE

Это немного неоптимально, если файлов много, потому что для каждого файла, который нужно открыть, нужно выполнить subl один раз, а не передавать их все сразу, но я далек от партиифайл гуру.

...