Kann ich in Emacs die Eigenschaften einer Datei anzeigen, die ich bereits geöffnet habe?
9
Ich habe eine Datei in Emacs geöffnet. Ich möchte Informationen zu dieser Datei wie Erstellungsdatum, Größe usw. in Emacs anzeigen. Gibt es dafür eine Tastenkombination oder einen Emacs-Befehl? Vielen Dank.
C-x d RETwird diredim Verzeichnis der besuchten Datei geöffnet . Es werden keine Informationen speziell zu der besuchten Datei angezeigt, sondern alle Dateien im Verzeichnis.
jrm
1
Wie wäre es mit?: M-x eval-expression RET (dired-other-window buffer-file-name) RET Die Befehlsschalter für "ls", die dired verwendet, sind anpassbar.
Lawlist
Sie können dies auch in eine Funktion einfügen und eine Tastenkombination hinzufügen. (defun file-info () (interactive) (dired-other-window buffer-file-name)) (global-set-key (kbd "C-c d") 'file-info)
jrm
1
Ich würde @jrm ermutigen, eine Antwort ähnlich dem obigen Kommentar zu veröffentlichen, die die let-gebundene Variable enthält, dired-listing-switchesdamit das OP jedes Dateiattribut anzeigen kann, das die entsprechende Version von "ls" unterstützt.
Lawlist
Vielen Dank für alle Kommentare und Bemühungen. Der von jrm vorgeschlagene funktionierte sofort.
Romario
Antworten:
9
Hier ist ein Befehl, der diredmit ausführlichen Dateiflaggen für den lsBefehl verwendet wird. Möglicherweise möchten Sie diese Flags je nach Betriebssystem anpassen.
In der ersten Zeile erhalten Sie die UID "lh" und GID "users".
Die nächsten drei Zeilen sind die letzten Zugriffs-, Änderungs- und Statusänderungszeiten, die als Listen formatiert sind. Sie können diese in von Menschen lesbare Zeichenfolgen konvertieren mit current-time-string:
(current-time-string '(206146401950040152000))
In diesem Fall lautet der Rückgabewert "Di 23 Okt 16:12:03 2012". Damit können Sie Ihre eigene Funktion erstellen, um die Bits zu extrahieren, an denen Sie interessiert sind. Wenn Sie nur die Metadaten im Minibuffer anzeigen möchten, wird dies für Sie angezeigt:
Danke für die Antwort. Aber ich weiß nicht oder konnte es nicht schaffen, den ersten Code einzugeben: (Dateiattribute (Puffer-Dateiname)) Ich denke, er sollte im Minibuffer eingegeben werden, aber wie wechsle ich zum Minibuffer? Ich weiß, dass Cg abschalten muss, aber ich weiß nicht, wie ich einschalten soll.
Romario
Geben Sie ein, um Elisp-Code im Minibuffer auszuführen M-:. Sie sehen Eval: im Minibuffer, und dann können Sie den Code eingeben. Für die defun, (defun file-metadata...können Sie das ausprobieren, indem sie in die einfügen Scratch - Puffer und mit Punkt innerhalb der Funktion Typisierung M-C-x. Dann können Sie die Funktion mit aufrufen M-x file-metadata.
Tyler
Ops, ja das hat geklappt. Hey, das ist nützlich. Wie Sie bereits betont haben, werden Dateiattribute in nativer Form aufgelistet. Mit den Konverterfunktionen können detailliertere Informationen zur Datei extrahiert werden. Ich würde diese Antwort als (sehr) hilfreich auswählen. Vielen Dank!
C-x d RET
wirddired
im Verzeichnis der besuchten Datei geöffnet . Es werden keine Informationen speziell zu der besuchten Datei angezeigt, sondern alle Dateien im Verzeichnis.M-x eval-expression RET (dired-other-window buffer-file-name) RET
Die Befehlsschalter für "ls", die dired verwendet, sind anpassbar.(defun file-info () (interactive) (dired-other-window buffer-file-name)) (global-set-key (kbd "C-c d") 'file-info)
dired-listing-switches
damit das OP jedes Dateiattribut anzeigen kann, das die entsprechende Version von "ls" unterstützt.Antworten:
Hier ist ein Befehl, der
dired
mit ausführlichen Dateiflaggen für denls
Befehl verwendet wird. Möglicherweise möchten Sie diese Flags je nach Betriebssystem anpassen.Erstellen Sie eine Tastenkombination nach Ihren Wünschen.
quelle
Es scheint keinen Befehl zu geben, um diese Informationen interaktiv abzurufen, obwohl Sie dired verwenden können, wie @jrm vorschlägt.
Sie können diese Informationen mit dem folgenden Elisp-Code erhalten:
Dies gibt eine Liste wie folgt zurück:
In der ersten Zeile erhalten Sie die UID "lh" und GID "users".
Die nächsten drei Zeilen sind die letzten Zugriffs-, Änderungs- und Statusänderungszeiten, die als Listen formatiert sind. Sie können diese in von Menschen lesbare Zeichenfolgen konvertieren mit
current-time-string
:In diesem Fall lautet der Rückgabewert "Di 23 Okt 16:12:03 2012". Damit können Sie Ihre eigene Funktion erstellen, um die Bits zu extrahieren, an denen Sie interessiert sind. Wenn Sie nur die Metadaten im Minibuffer anzeigen möchten, wird dies für Sie angezeigt:
Wenn Sie dies interaktiv aufrufen, erhalten Sie:
Weitere Details finden Sie im Handbuch (elisp) Dateiattribute.
quelle
M-:
. Sie sehenEval:
im Minibuffer, und dann können Sie den Code eingeben. Für die defun,(defun file-metadata...
können Sie das ausprobieren, indem sie in die einfügen Scratch - Puffer und mit Punkt innerhalb der Funktion TypisierungM-C-x
. Dann können Sie die Funktion mit aufrufenM-x file-metadata
.