So schreiben Sie einen Hauptmodus, in dem die Datei nicht geöffnet, sondern angezeigt wird

9

Ich möchte einen Hauptmodus zum Überprüfen von netCDF-Dateien schreiben. Dies sind Binärdateien mit einer Größe von mehreren GB. Ich möchte sie also nicht in Emacs öffnen.

Die Interaktion, an die ich denke, ist die folgende:

  1. Der Benutzer öffnet die netCDF-Datei wie jede andere Datei in Emacs.
  2. Ein Befehlszeilenprogramm ( ncdump -h) wird für die Datei ausgeführt und die Ausgabe wird von Emacs interpretiert.

Das Problem ist, dass es anscheinend keine Möglichkeit gibt, Emacs daran zu hindern, die Datei tatsächlich zu öffnen.

cpaulik
quelle
3
Interessantes Problem. Dies ist im Hauptmodus nicht möglich, da dies zu spät ausgeführt wird: Emacs muss die Datei zuerst öffnen, da der Hauptmodus basierend auf dem Dateiinhalt ausgewählt werden kann (z -*-my-mode-*-. B. ). Sie müssten sich früher einbinden find-find-noselect, vielleicht an der Stelle, an der es jetzt eine Ausnahme für Verzeichnisse gibt.
Gilles 'SO - hör auf böse zu sein'
4
Benötigen Sie nur eine Funktion, die einen Prozess ausführt und die Ausgabe an einen bestimmten Puffer sendet (wobei der Dateiname ein Argument ist, das der Benutzer auswählen kann)? Auf welche andere Weise würden Sie einen Hauptmodus benötigen, da dies normalerweise das Arbeiten mit einem bestimmten Puffer impliziert (z. B. was ist der Zweck des Hauptmodus, was macht er ...)? Hier ist der Link zu dem Handbuch, das verschiedene Prozesse beschreibt, die mit Emacs gestartet werden können: gnu.org/software/emacs/manual/html_node/elisp/…
lawlist
2
Ein Anfang wäre, eine solche Datei zu verwenden process-fileoder call-processzu verwenden, ncdump -husw. zu verwenden
Drew
2
Kennen Sie das Paket vlf von elpa? Ich habe den Eindruck, dass dieses Paket genau das tut, was Sie versuchen, nicht mit Binärdateien, sondern mit Textdateien zu erreichen. Ich denke, Sie können aus diesem Paket lernen, wie Sie das tun, was Sie wollen. Wenn Sie über 64-Bit-Emacs verfügen, spielen die Ganzzahlbeschränkungen von Emacs bei diesem Paket ebenfalls keine Rolle. Sie können das Paket über installieren M-x package-install.
Tobias
1
Ich empfehle Ihnen, sich den Vorschlag von @ Tobias noch einmal anzusehen. Nicht weil Sie die Funktionalität von vlf möchten, sondern weil vlf dieselbe Funktionalität benötigt, die Sie benötigen. Es lohnt sich also zu prüfen, wie es funktioniert.
Stefan

Antworten:

1

Ich verwende ein Paket namens vorbiscomment, das ich jetzt unter der URL in seinem Header-Kommentar nicht finden kann und das nicht in * ELPA oder in EmacsWiki erscheint. Hier ist diese nicht funktionierende URL:

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

Auf jeden Fall können Sie die Tag-Metadaten für (binäre) OGG Vorbis-Audiodateien bearbeiten, was konzeptionell dem entspricht, was Sie möchten. Es ist wirklich nur ein einfacher Wrapper um Befehlszeilentools.

Ich habe es in den folgenden Kern kopiert:

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

Phil Hudson
quelle