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 для предыдущего.
  • Отметьте Регулярное выражение в окне поиска, чтобы искать по шаблону, а не по простому тексту — ERROR \d+ или ^Warning для строк, начинающихся с него. ^ и $ означают начало и конец строки. Шаблон, который не компилируется, сообщается как таковой, а не молча ничего не находит.
  • Очень большие файлы просматриваются перекрывающимися окнами, поэтому одно совпадение длиннее примерно 64 КБ может быть пропущено, если оно приходится ровно на границу окна. У обычного поиска текста такого ограничения нет — как и у шаблона, совпадающего с чем-то более коротким.
  • Если текст выглядит искажённым, щёлкните «Кодировка» на панели инструментов (или нажмите E), чтобы перебрать кодировки, пока текст не станет читаемым; автоматическая настройка обычно верна.
  • Нажмите W, чтобы переключить перенос слов для длинных строк.
  • Нажмите Ctrl+G, чтобы перейти к строке, а в шестнадцатеричном режиме — к смещению в байтах. Допускаются вычисления между системами счисления: 0x1000 + 15 + 1 ведёт к 4112 — шестнадцатеричные с 0x, $ или конечным h, двоичные с 0b, восьмеричные с 0o, и + - * / со скобками.
  • Если открыть найденный файл из «Найти файлы», где было заполнено Найти текст, просмотрщик начинает с этого поиска: текст уже в строке поиска, а первое вхождение видно на экране, так что вы попадаете к совпадению, а не в начало файла. Если изменить или очистить его там, останется ваш вариант. В Настройках ▸ Правка/Просмотр это можно отключить, если каждый файл должен открываться с начала.

Чтение строк в двоичном файле

В шестнадцатеричном представлении панель инструментов предлагает Строки: панель со списком каждой читаемой последовательности текста в файле, со смещением, на котором она находится, и с тем, как она была раскодирована. Щелчок по строке переводит шестнадцатеричный вид на эти байты и выделяет их, так что следующее действие — Копировать выделение как… или просто чтение того, что рядом, — относится именно к этой строке.

  • Четыре прочтения идут одновременно: ASCII, UTF-8, UTF-16 little-endian и UTF-16 big-endian. Широкие строки исполняемого файла Windows и обычные попадают благодаря этому в один список, вместо того чтобы каждое требовало отдельного прохода. Latin-1 тоже доступен в меню Кодировки, но поначалу выключен: три четверти всех значений байтов — печатаемый Latin-1, и скомпилированный код проходит это прочтение массово.
  • Одни и те же байты часто читаются более чем в одной кодировке. Когда два прочтения претендуют на один диапазон, побеждает то, которое больше читается как текст, — Hello поэтому в списке один раз, а не ещё и как пара знаков, которую те же байты дают при чтении по два.
  • Мин. длина задаёт, насколько короткой может быть последовательность, чтобы всё ещё считаться. Четыре символа — обычная отправная точка; на большом двоичном файле её стоит поднять, чтобы список поредел.
  • Поле фильтра сужает показанное, не перечитывая файл, и потому остаётся мгновенным даже на очень большом. Изменение длины или кодировок файл перечитывает, потому что меняет то, что считается строкой.
  • Показывать и маловероятные строки в меню Кодировки добавляет всё, что просто печатаемо, — включая текст UTF-16, не преимущественно латинский, который обычный список опускает, потому что ничто в байтах не отличает его от обычного текста, прочитанного по два байта.

Масштабирование изображения

В представлении «Изображение» просмотрщик открывает картинку по размеру окна, а маленькую оставляет в её собственном размере, а не растягивает.

Действие Меню Клавиши
Увеличить Вид ▸ Увеличить Cmd++ / +
Уменьшить Вид ▸ Уменьшить Cmd+- / -
Реальный размер (100 %) Вид ▸ Реальный размер Cmd+0 / 0
По размеру окна Вид ▸ По размеру окна Cmd+9 / F

Можно также сводить и разводить пальцы на трекпаде или прокручивать с зажатой Cmd. Масштаб показан в строке состояния, а реальный размер — это один пиксель изображения на точку экрана, а не просто «отменить мой зум». Вписывание следует за окном: измените его размер, и картинка останется вписанной.

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

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

  • Поставьте курсор на строку и выберите Вид ▸ Заметка к этой строке… (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, а не маленькая миниатюра: работает любой формат, который умеет показывать «Быстрый просмотр», а многостраничный документ листается страница за страницей прямо в предпросмотре.
  • У изображения есть собственные кнопки масштаба в углу предпросмотра — уменьшить, увеличить, реальный размер и вписать — рядом с ними текущий масштаб; жест и Cmd+прокрутка тоже работают. Всё остальное, что рисует предпросмотр, например PDF или видео, ведёт себя как прежде.
  • Ниже — имя, тип и размер, затем когда объект создан и изменён и в какой он папке.

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

Какие страницы предлагает боковая панель

Боковая панель поначалу показывает только страницу Сведения. Действия (ещё идущие передачи) и Журнал (завершённые передачи) выключены: большая часть работы их никогда не спрашивает, а иначе полоска из трёх вкладок целый день висит над предпросмотром.

  • Включите их в Настройках > Расположение в разделе Страницы боковой панели, правым щелчком по полоске вкладок или из Вид > Боковая панель: Сведения / Действия / Журнал.
  • Если остаётся одна страница, панель совсем обходится без полоски вкладок: панель с одними Сведениями — это предпросмотр и подробности, и ничего над ними.
  • Выключить можно любую страницу, включая Сведения, — это пригодится, когда здесь у вас вместо неё терминал или панель плагина. Панель, в которой ничего не осталось, говорит об этом, а не открывается пустой.
  • Страницы, которые добавляет плагин, это не затрагивает: они появляются и исчезают вместе с плагином, а для их выключения есть страница Плагины.
  • Вид > Сбросить расположение возвращает страницы к одним Сведениям вместе с остальной обстановкой окна.

Пункты меню Вид значат больше, чем кажется. Когда выключены все страницы, полоски вкладок для правого щелчка больше нет — они и есть путь назад.

Декомпиляция файлов .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 и другие, если установлен подходящий инструмент командной строки). Полностью описана в разделе Редактирование файлов и работает здесь так же.