Как написать основной режим, который не открывает файл, но дает представление о нем

9

Я хотел бы написать основной режим для проверки файлов netCDF. Это двоичные файлы размером несколько ГБ. Поэтому я не хочу открывать их в Emacs.

Взаимодействие, которое я имею в виду, заключается в следующем:

  1. Пользователь открывает файл netCDF, как и любой другой файл в emacs.
  2. Программа командной строки ( ncdump -h) выполняется для файла, а вывод интерпретируется emacs.

Проблема в том, что, похоже, нет способа остановить открытие файла Emacs.

cpaulik
источник
3
Интересная проблема. Вы не сможете сделать это из основного режима, потому что он запускается слишком поздно: Emacs должен сначала открыть файл, потому что он может выбрать основной режим на основе содержимого файла (например -*-my-mode-*-). Вам нужно подключиться раньше find-find-noselect, возможно, в том месте, где теперь есть исключение для каталогов.
Жиль "ТАК - перестань быть злым"
4
Вам просто нужна функция, которая запускает процесс и отправляет вывод в определенный буфер (имя файла является аргументом, который может выбрать пользователь)? Каким другим способом вам потребуется основной режим, поскольку обычно это подразумевает работу с определенным буфером (например, какова цель основного режима, что он делает ...)? Вот ссылка на руководство с описанием различных процессов , которые могут быть запущены с Emacs: gnu.org/software/emacs/manual/html_node/elisp/...
lawlist
2
Начать можно было бы использовать process-fileили call-processна таком файле, используя ncdump -hи т. Д.
Дрю
2
Знаете ли вы пакет VLF от Elpa? У меня сложилось впечатление, что этот пакет делает именно то, что вы пытаетесь выполнить не с двоичными файлами, а с текстовыми файлами. Я думаю, вы можете узнать из этого пакета, как делать то, что вы хотите. Если у вас есть 64-битный emacs, то целочисленные ограничения в emacs также не имеют значения для этого пакета. Вы можете установить пакет через M-x package-install.
Тобиас
1
Я рекомендую вам еще раз взглянуть на предложение @ Tobias. Не потому, что вам нужна функциональность vlf, а потому, что vlf нужна та же функциональность, что и вам, поэтому стоит посмотреть, как она это делает.
Стефан

Ответы:

1

Я использую пакет с именем vorbiscomment, который сейчас не могу найти по URL-адресу в заголовке комментария и который отсутствует в * ELPA или в EmacsWiki. Вот этот неработающий URL:

http://users-phys.au.dk/harder/

В любом случае, он позволяет редактировать метаданные тега для (двоичных) аудиофайлов OGG Vorbis, которые концептуально звучат так, как вы хотите. Это просто простая оболочка для инструментов командной строки.

Я скопировал его в следующую суть:

https://gist.github.com/PhilHudson/4fc8f38a5dc2b39f256feddb0014041c

Фил Хадсон
источник