Emacs-Zwischenspeicher wird beim Wechseln zum vorherigen Verzeichnis erneut verwendet

809
z33m

Ich folge diesem Wiki-Vorschlag, um Emacs einzurichten, damit ich mich im Dired-Modus vor- und zurückbewegen kann, ohne neue Puffer zu erstellen.

Wenn Sie den aSchlüssel zusammen mit der (put 'dired-find-alternate-file 'disabled nil)Einstellung verwenden, kann ich in Verzeichnisse ohne neue Puffer wechseln.

Der Haken für den ^im Wiki erwähnten Schlüssel funktioniert jedoch nicht für mich. Wenn Sie zum vorherigen Verzeichnis wechseln, werden ^noch neue Puffer geöffnet.

Hier sind die Einstellungen, die ich in meinem verwende .emacs.d/init.el

; dired settings (require 'dired-x) (setq dired-omit-files "^\\.?#\\|^\\.$\\|^\\.\\.$\\|^\\.") (add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1))) (setq dired-listing-switches "-aBhl --group-directories-first") (put 'dired-find-alternate-file 'disabled nil) (add-hook 'dired-mode-hook (lambda () (define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file ".."))))) 
3
Ihr Code für die Tastenkombination sieht gut aus - wenn Sie einen neuen Puffer öffnen, wird Ihre Tastenkombination wahrscheinlich aus irgendeinem Grund nicht erkannt - wenn Sie ein `Ch k ^` ausführen, sehen Sie wahrscheinlich, dass die Standardfunktion `dired ist -up-directory` wird noch aufgerufen. Sind die Fehlermeldungen? Beim Laden von `dired-x` werden Fehler angezeigt -` Die Tastenkombination * O beginnt mit dem Nicht-Präfix-Schlüssel * ` lawlist vor 10 Jahren 0
Ich glaube das ist der Fall. Die Tastenkombination "define-key" wird aus irgendeinem Grund nicht erkannt. Wenn ich `Mx find-alternate-file` eingebe und dann` ..` geht es zurück, ohne einen neuen Puffer zu erstellen. Auch `Ch k ^` zeigt an, dass `^ an` dired-up-directory` gebunden ist. Ich bekomme jedoch keine Fehler. z33m vor 10 Jahren 0

1 Antwort auf die Frage

2
Drew

Verwenden Sie einfach Dired + . Verwenden Sie C-M-Rdiese Option, um festzulegen, ob gerichtete Puffer wiederverwendet werden sollen. Fügen Sie dies in Ihre init-Datei ein, wenn Sie standardmäßig wiederverwenden möchten:

 (diredp-make-find-file-keys-reuse-dirs) 

Das kümmert sich auch darum ^. In der Summe müssen Sie nichts kodieren - laden Sie einfach Dired + .

Ich habe dired + über den Paketmanager installiert. Es scheint, dass die Version von dired +, die installiert wird, diese Funktion nicht hat. Kann ich veraltete Versionen aus den Paketarchiven bekommen? Ich habe Marmelade meiner Liste "Paket-Archive" hinzugefügt z33m vor 10 Jahren 0
@ z33m - Weiß nicht, was das Problem sein könnte. Diese Funktion befindet sich seit dem 21.01.2010 in "dired + .el", wie das Änderungsprotokoll in der Datei zeigt. Besuchen Sie die Datei und sehen Sie, ob Sie diese Funktion nicht finden. Sagt "Ch f" für diesen Funktionsnamen wirklich, dass es nicht definiert ist, nachdem Sie "dired + .el" geladen haben? Beachten Sie, dass diese Funktion kein * Befehl * ist - Sie können sie nicht mit `Mx` aufrufen. Sie können jedoch das Geschlecht, das ich geschrieben habe, mit "M-:" (oder mit "Cx Ce" in "* scratch *" oder Ihrer Init-Datei) auswerten. Drew vor 10 Jahren 0
Ja, ich habe versucht, es mit `Mx` auszuführen. Ich habe diesen Befehl zu meinem `init.el` hinzugefügt und funktioniert jetzt. Vielen Dank! z33m vor 10 Jahren 0