Ich möchte den Speicherort des übergeordneten Verzeichnisses der aktuellen Datei unabhängig vom aktuellen Puffernamen sehen können.
mode-line
directories
zweiter Planet
quelle
quelle
Antworten:
Sie können das Moduszeilenformat nach Ihren Wünschen konfigurieren . Wenn Sie das übergeordnete Verzeichnis zusammen mit dem Puffernamen anzeigen möchten (normalerweise der Dateiname für einen Puffer, der eine Datei besucht), ändern Sie
mode-line-buffer-identification
; Andernfalls fügen Sie einen Eintrag zu hinzumode-line-format
. Es gibt kein integriertes Konstrukt für das "übergeordnete Verzeichnis der aktuellen Datei", daher müssen Sie dieses selbst erstellen , z. B. mit:eval
. Hier ist ein Beispiel, das den Verzeichnisnamen nach dem Puffernamen hinzufügt und nichts in Puffern tut, die keine Dateien besuchen (einschließlich Dired). Möglicherweise möchten Sie es mit der Formatierung verfeinern.Eine andere Methode wäre, eine Variable festzulegen, die den gewünschten Text enthält
find-file-hooks
. Ich zeige auch, wie Sie Eigenschaften mit dem:propertize
Konstrukt festlegen können .Wenn Sie wirklich den Verzeichnisnamen haben möchten, falls Sie mehrere Dateien mit demselben Namen in verschiedenen Verzeichnissen haben, hat Emacs diesen mit der eindeutigen Bibliothek integriert . Wenn es mehrere Puffer mit demselben Namen geben würde, bewirkt diese Bibliothek, dass der Puffername wie
file.ext<foo>
undfile.ext<bar>
anstelle vonfile.ext
und aussiehtfile.ext<2>
. Sie können das Format durch Anpassen optimierenuniquify-buffer-name-style
.quelle
Ich nehme an, Sie meinen, Sie möchten das Verzeichnis anstelle des Puffernamens sehen.
Oder wenn Sie möchten, dass Ihr Home-Verzeichnis abgekürzt wird
~/
(anstelle eines absoluten Dateinamens aus dem Stammverzeichnis), dann:Oder wenn Sie nur den übergeordneten Verzeichnisnamen als einzelnen Verzeichniskomponentennamen möchten, dann:
Oder wenn Sie auch den Puffernamen behalten möchten, wie @Malabarba annimmt, dann:
Der Punkt ist, dass Sie nur den Wert von
default-directory
(möglicherweise vereinfacht von einem absoluten Namen, wenn Sie möchten) in verwenden müssenmode-line-buffer-identification
. Sie können diese Variable nur auf den Verzeichnisnamen oder auf einen Wert setzen, der auch den Puffernamen enthält.Wenn das, was Sie fragen, alles ist, was Sie wollen, ist es einfach, die Moduszeile so zu konfigurieren
default-directory
, dass sie die enthält , wie Sie möchten, dass sie angezeigt wird. Hierfür müssen nicht mehrere Bibliotheken geladen werden (was auch dersmart-mode-line
Fall ist).quelle
Sie installieren verwenden smart-mode-line . Es ist so konfiguriert, dass der Dateipfad in der Moduszeile angezeigt wird, wann immer dies relevant ist.
Installieren Sie es einfach und schalten Sie es dann mit ein
(sml/setup)
.Es hat auch viele Funktionen, um diese Anzeige übersichtlicher zu gestalten. Beispielsweise wird "~ / .emacs.d /" durch ": ED:" ersetzt (und Sie können weitere Ersetzungen konfigurieren).
quelle