Як написати основний режим, який не відкриває файл, але забезпечує його перегляд


9

Я хотів би написати основний режим для перевірки файлів netCDF. Це бінарні файли, розміром яких може бути кілька ГБ. Тому я не хочу відкривати їх у emacs.

Маю на увазі взаємодію:

  1. Користувач відкриває файл NetCDF, як і будь-який інший файл у emacs.
  2. У ncdump -hфайлі виконується програма командного рядка ( ), а вихід інтерпретується emacs.

Проблема полягає в тому, що, здається, немає можливості зупинити фактичне відкриття файлу emacs.


3
Цікава проблема. Ви не зможете зробити це в основному режимі, оскільки це працює занадто пізно: Emacs потрібно спершу відкрити файл, оскільки він може вибрати основний режим на основі вмісту файлу (наприклад -*-my-mode-*-). Вам потрібно буде зачепитись раніше find-find-noselect, можливо, там, де зараз є виняток для каталогів.
Жил "ТАК - перестань бути злим"

4
Вам просто потрібна функція, яка запускає процес і надсилає вихід до певного буфера (при цьому ім'я файлу є аргументом, який користувач може вибрати)? Яким би іншим способом вам знадобився мажорний режим, оскільки це, як правило, передбачає роботу над певним буфером (наприклад, яка мета основного режиму, що він робить ...)? Ось посилання на посібник з описом різних процесів, які можна розпочати з Emacs: gnu.org/software/emacs/manual/html_node/elisp/…
lawlist

2
Початком було б використовувати process-fileабо call-processна такому файлі, використовуючи ncdump -hetc.
Drew

2
Чи знаєте ви пакет vlf від elpa? У мене таке враження, що цей пакет робить саме те, що ви намагаєтеся досягти не з бінарними, а з текстовими файлами. Я думаю, ви можете навчитися з цього пакету, як робити те, що ви хочете. Якщо у вас 64-розрядні emacs, цілі обмеження emacs також не турбують цей пакет. Ви можете встановити пакет через M-x package-install.
Тобіас

1
Рекомендую ще раз поглянути на пропозицію @ Тобіаса. Не тому, що ви хочете функціонувати vlf, а тому, що vlf потрібен той самий функціонал, який вам потрібен, тому варто подивитися, як це робиться.
Стефан

Відповіді:



1

Я використовую пакет з назвою vorbiscomment, який я зараз не можу знайти за URL-адресою в коментарі до його заголовка і який не відображається в * ELPA або в EmacsWiki. Ось ця непрацююча URL-адреса:

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

У будь-якому випадку це дозволяє редагувати метадані тегів для (бінарних) аудіофайлів VGORG OGG, які звучать концептуально подібними до того, що ви хочете. Це дійсно просто проста обгортка навколо інструментів командного рядка.

Я скопіював це в наступну суть:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.