Skip to content

Просмотр файлов

В Peach Commander есть встроенный просмотрщик, позволяющий заглянуть внутрь файла, не открывая другое приложение и не меняя файл. Нажмите F3 на элементе под курсором, и просмотрщик откроется мгновенно, даже для очень больших файлов. Он автоматически выбирает лучший способ показать содержимое: читаемый текст, код с подсветкой синтаксиса, сырой шестнадцатеричный дамп или изображение в полный размер. Вы также можете просмотреть файл прямо внутри окна с помощью быстрого просмотра или передать его в macOS Quick Look.

Просмотреть файл

  1. Наведите курсор на файл в активной панели.
  2. Нажмите F3 (или выберите «Просмотр» в меню Файл). Просмотрщик откроется в собственном окне.
  3. Используйте панель инструментов, чтобы переключать способ показа содержимого: Текст, Код, Шестнадцатеричный, Изображение или С разметкой. Оставьте автоматическую настройку, чтобы Peach Commander решил сам.
  4. Прокручивайте клавишами со стрелками, Page Up/Page Down и полосой прокрутки. Для длинного текста включите кнопку мини-карты, чтобы видеть весь файл и быстро перемещаться по нему.
  5. Нажмите N, чтобы перейти к следующему выделенному файлу, или закройте окно клавишей Esc.

Встроенный просмотрщик, показывающий текстовый файл с мини-картой справа (Рисунок: просмотр текстового файла с выбором представления и мини-картой на панели инструментов.)

Поиск текста и смена кодировки

  • Нажмите Ctrl+F для поиска внутри файла. Нажмите F3 для перехода к следующему совпадению и Shift+F3 для предыдущего.
  • Если текст выглядит искажённым, щёлкните «Кодировка» на панели инструментов (или нажмите E), чтобы перебрать кодировки, пока текст не станет читаемым; автоматическая настройка обычно верна.
  • Нажмите W, чтобы переключить перенос слов для длинных строк.

Заметки к строке

Если установлен модуль «Заметки», заметка может относиться к определённой строке файла, а не к файлу целиком.

  • Поставьте курсор на строку и выберите Вид ▸ Заметка к этой строке… (Cmd+Shift+N). Редактор заметок откроется с именем файла и номером строки в заголовке.
  • Строки, к которым уже есть заметка, появляются группой Заметки на панели меток внизу окна, рядом с результатами поиска. Cmd+Ctrl+M открывает панель; двойной щелчок по записи переходит к строке.
  • Сами заметки хранятся вместе со всеми остальными, поэтому обзор заметок и «Поиск файлов» находят их так же. Удаляют их в редакторе заметок — кнопка закрытия на панели лишь скрывает группу.

Быстрый просмотр и Quick Look

Быстрый просмотр показывает живой предпросмотр в панели, которую вы не используете, поэтому вы можете продолжать просмотр на одной стороне, предпросматривая на другой.

  1. Нажмите Ctrl+Q. Неактивная панель превращается в область предпросмотра.
  2. Перемещайте курсор по разным файлам в активной панели, чтобы предпросмотреть каждый.
  3. Нажмите Ctrl+Q снова или Esc, чтобы вернуть панель к обычному списку файлов.

Для быстрого полноэкранного предпросмотра, обрабатываемого самой macOS, нажмите Cmd+Y (Quick Look). Нажмите Cmd+Y или Пробел снова, чтобы закрыть его.

Страница сведений в боковой панели

В боковой панели (Вид > Панель предпросмотра, или Cmd+Shift+P) есть страница Сведения, которая показывает объект под курсором так же, как боковая панель сведений в Finder.

  • Предпросмотр занимает всю ширину панели: расширьте панель — и предпросмотр вырастет вместе с ней. Потяните за левый край панели, чтобы сделать её шире или уже; ширина запоминается.
  • Это настоящий предпросмотр macOS, а не маленькая миниатюра: работает любой формат, который умеет показывать «Быстрый просмотр», а многостраничный документ листается страница за страницей прямо в предпросмотре.
  • Ниже — имя, тип и размер, затем когда объект создан и изменён и в какой он папке.

При движении курсора имя и сведения обновляются сразу; предпросмотр появляется мгновением позже, чтобы удержание стрелки в длинной папке не запускало предпросмотр для каждой пройденной строки.

Декомпиляция файлов .class языка Java

При включённом модуле Java Decompiler клавиша F3 на файле .class показывает читаемый код вместо двоичных данных — в том числе для классов внутри архива JAR или ZIP, в который можно войти и читать его без распаковки.

Сам модуль декомпилятора не содержит. Он управляет движком, который вы устанавливаете, и движок можно сменить в любой момент:

  • CFR (лицензия MIT) и Vineflower (Apache 2.0) выдают исходный код Java. Положите cfr.jar или vineflower.jar в папку движков.
  • Procyon (Apache 2.0) — третий декомпилятор в исходный код.
  • javap не требует никакой загрузки: он входит в любой JDK и показывает байт-код вместо исходного кода Java.

Ничего не загружается за вас: это сторонние программы с собственными лицензиями, и Peach Commander их не скачивает и не обновляет. Кнопка Папка движков… в просмотрщике открывает папку, куда они относятся, и оставляет там заметку с названием каждого движка и адресом загрузки. Всем, кроме javap, нужна установленная Java.

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

Исходный код подсвечивается, а две кнопки ведут дальше: «Сохранить как…» записывает его в файл, а «Открыть в редакторе» передаёт тому, что открывает .java на вашем Mac. Очень большой результат показывается без подсветки, чтобы появиться сразу, а не после паузы; строка состояния об этом сообщает.

Результаты кешируются на диске, поэтому повторное открытие уже просмотренного файла происходит мгновенно; ключ включает размер и дату файла и аргументы движка, так что перекомпилированный класс или изменённый флаг декомпилируется заново. Выбранный движок запоминается для каждого вида файлов. Профиль может наследовать встроенный движок через extends = cfr и переопределять только флаги — удобно, если вы держите две предустановки одного движка.

Включите «Сравнить», чтобы открыть вторую панель с собственным меню движка. Два декомпилятора ошибаются в разных местах, поэтому увидеть их рядом часто быстрее, чем решать, какому верить; выбрав javap с одной стороны, вы получите байт-код рядом с исходником. Обе панели используют общий кеш, так что переключение между уже запущенными движками мгновенно.

F3 на целом .jar, .apk или .dex декомпилирует всё сразу и показывает дерево пакетов рядом с исходником. Поле поиска над деревом ищет по всем классам — именно тот вопрос, на который один класс ответить не может: где строка, вызов или константа встречается на самом деле, когда ещё неизвестно, в каком классе. Совпадения сужают дерево, а первое открывается на своей строке. По Enter JAR по-прежнему открывается как архив — эти два действия остаются раздельными.

Есть второй, более прямой путь: поставьте курсор на файл .class или на целый архив и выберите «Декомпилировать в исходники» (меню «Команды», контекстное меню или ⌘⇧J). Классы декомпилируются, а результат откроется в другой панели обычными файлами .java. Дальше работает весь файловый менеджер: F3 показывает их с собственной подсветкой Java, Alt+F7 ищет по ним, F5 копирует их наружу, а сравнивать и помечать их можно как что угодно другое. Для большей части работы это лучше отдельного окна — поэтому дерево плагина можно выключить в «Настройки ▸ Декомпилятор».

Второй плагин делает то же для .NET: F3 на управляемой .dll, .exe или .winmd показывает её типы как C#, «Декомпилировать сборку в исходники» (⌘⇧N) кладёт их в панель, а поиск умеет заглядывать внутрь сборки так же. Он управляет ILSpy (MIT, dotnet tool install -g ilspycmd) для исходного кода или monodis из Mono для IL — это .NET-аналог javap. У нативной .dll то же расширение и никакого исходника, поэтому плагин проверяет это до открытия и оставляет её встроенному просмотрщику.

На странице настроек есть кнопка «Проверить движки», и её стоит нажать: «установлен» в других местах означает лишь, что файл на диске, а движок для Java на Mac без JDK присутствует и работать не может. Проверка спрашивает у каждого движка его версию и сообщает, какие действительно работают.

Android тоже охвачен: F3 на файле .dex использует jadx (Apache 2.0, brew install jadx), который превращает байт-код Dalvik обратно в Java. Для этого хватило одного описания движка — тот же механизм, другой формат.

Модуль выключен, пока вы его не включите, в Настройки ▸ Модули — большинство никогда не открывает файл .class, а без движка он бесполезен.

Чтобы добавить свой движок, создайте decompilers.ini в папке движков:

[myengine]
name   = My Decompiler
kinds  = class
tool   = java
args    = -jar {engine} {input}
engine  = my-decompiler.jar   ; a bare name is looked up in this folder
output  = stdout
timeout = 30                  ; seconds before the engine is stopped

{input}, {engine} и {outdir} подставляются при запуске. Ваши записи имеют приоритет над встроенными, а повторное использование встроенного имени (cfr, vineflower, procyon, javap) заменяет его, а не добавляет вторую запись.

Сочетания клавиш

Действие Сочетание
Просмотреть файл под курсором F3
Просмотреть только файл под курсором (игнорировать отмеченные) Shift+F3
Открыть во внешнем просмотрщике Option+F3
Поиск в просмотрщике Ctrl+F
Заметка к строке под курсором Cmd+Shift+N
Показать или скрыть панель меток Cmd+Ctrl+M
Следующее / предыдущее совпадение F3 / Shift+F3
Быстрый просмотр в другой панели Ctrl+Q
Quick Look (предпросмотр macOS) Cmd+Y
Закрыть просмотрщик или быстрый просмотр Esc

Примечания

  • Просмотрщик доступен только для чтения. Чтобы изменить файл, используйте вместо него редактор (см. «Редактирование файлов»).
  • Очень большие файлы открываются без задержки: текст открывает быстрое прокручиваемое представление, а шестнадцатеричное представление читается прямо с диска при любом размере.
  • Нажмите F3 на папке, чтобы увидеть сводку её содержимого и общий размер вместо байтов файла.
  • Режим «С разметкой» отображает форматированное содержимое, например веб-страницы; шестнадцатеричный режим показывает сырые байты рядом с их символами, что удобно для изучения двоичных файлов.
  • В режиме «Отрисовано» текст можно выделять и копировать, а «Найти» ищет по отрисованной странице. Кнопки, неприменимые к отрисованной странице — «Формат», «Кодировка», «Выделить всё», «Выделения» и «Перейти» — становятся недоступными, а не бездействуют.
  • Кнопка «Формат» заново расставляет отступы в структурированных файлах (JSON, XML, HTML, INI, YAML и другие, если установлен подходящий инструмент командной строки). Полностью описана в разделе Редактирование файлов и работает здесь так же.