Come scrivere una modalità principale che non apre il file ma fornisce una vista su di esso


9

Vorrei scrivere una modalità principale per l'ispezione dei file netCDF. Questi sono file binari che possono avere dimensioni multiple di GB. Quindi non voglio aprirli in emacs.

L'interazione che ho in mente è la seguente:

  1. L'utente apre il file netCDF come qualsiasi altro file in emacs.
  2. Un programma da riga di comando ( ncdump -h) viene eseguito sul file e l'output viene interpretato da emacs.

Il problema è che non sembra esserci alcun modo per impedire a emacs di aprire effettivamente il file.


3
Problema interessante. Non sarai in grado di farlo dalla modalità principale perché funziona troppo tardi: Emacs deve prima aprire il file perché può scegliere la modalità principale in base al contenuto del file (ad es -*-my-mode-*-.). Dovresti agganciarti prima find-find-noselect, forse nel punto in cui ora c'è un'eccezione per le directory.
Gilles 'SO- smetti di essere malvagio' il

4
Hai solo bisogno di una funzione che esegue un processo e invia l'output a un determinato buffer (con il nome del file che è un argomento che l'utente può scegliere)? In quale altro modo avresti bisogno di una modalità maggiore, dal momento che ciò implica normalmente operare su un determinato buffer (ad esempio, qual è lo scopo della modalità principale, che cosa fa ...)? Ecco il link al manuale che descrive i vari processi che possono essere avviati con Emacs: gnu.org/software/emacs/manual/html_node/elisp/…
elenco delle leggi

2
Un inizio sarebbe quello di utilizzare process-fileo call-processsu tale file uno, usando ncdump -hecc
Drew

2
Non si conosce il pacchetto di bassa frequenza da ELPA? Ho l'impressione che questo pacchetto faccia esattamente quello che cerchi di fare non con i file binari ma con i file di testo. Penso che tu possa imparare da quel pacchetto come fare quello che vuoi. Se si dispone di un emacs a 64 bit, anche i limiti di numero intero di emacs non interessano questo pacchetto. È possibile installare il pacchetto tramite M-x package-install.
Tobias,

1
Ti consiglio di dare un'altra occhiata al suggerimento di @ Tobias. Non perché desideri la funzionalità di vlf, ma perché vlf ha bisogno delle stesse funzionalità di cui hai bisogno, quindi vale la pena guardare come lo fa.
Stefan,

Risposte:



1

Uso un pacchetto chiamato vorbiscomment, che ora non riesco a trovare nell'URL nel commento dell'intestazione e che non appare in * ELPA o su EmacsWiki. Ecco l'URL non funzionante:

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

Ad ogni modo, ti permette di modificare i metadati dei tag per i file audio (binari) OGG Vorbis, che suona concettualmente simile a quello che desideri. È davvero solo un semplice wrapper per gli strumenti da riga di comando.

L'ho copiato nella seguente sintesi:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.