Wie setze ich Emacs als Standard-Dateimanager?

19

Einige Programme wie Firefox haben Schaltflächen, die beim Klicken einen Dateimanager zum Durchsuchen von Dateien öffnen. Wie schaffe ich es, unter Debian Linux in Emacs mit Dired-Modus zu öffnen?

godblessfq
quelle
9
Was ist Ihr Betriebssystem?
Drew
1
Ich benutze Debian Jessie.
Godblessfq

Antworten:

17

Abhängig von Ihrer Desktop-Umgebung kann die Methode zum Festlegen einer Standardanwendung unterschiedlich sein. In vielen Desktop-Umgebungen werden jedoch die Zuordnungen berücksichtigt ~/.local/share/applications/mimeapps.list, in denen Sie eine Zuordnung für die application/x-directoryund / oder inode/directoryTypen einrichten können.

Mein mimeapps.listsieht jetzt so aus:

[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop

Im selben Verzeichnis habe ich eine Datei emacs-dired.desktopmit folgendem Inhalt aufgerufen :

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired

Wenn meine langlebige Emacs-Instanz einen Server M-x server-startausführt ( ) und ich auf das Ordnersymbol in der Liste der Downloads in Icecat klicke, wird ein neuer diredPuffer geöffnet.

Das funktioniert jetzt tatsächlich für mich. Vielen Dank für die Frage --- sonst hätte ich das nicht eingerichtet.

rekado
quelle
6

So erstellen Sie Emacs als Standard-Dateimanager in Ubuntu.

Zuerst müssen wir ein Skript schreiben, das als Dateimanager fungiert.

#!/usr/bin/env python
import os
import sys


def main():
    if len(sys.argv) > 1:
        dirname =  sys.argv[1]
    else:
        dirname = '~'
    os.system('emacs --eval \'(dired "{}")\'%'.format(dirname))
    # you can use emacsclient if you are running emacs server

if __name__ == "__main__":
    main()

Speichern Sie dies als emacsfmin /usr/bin/. Jetzt können wir im Terminal anstelle von nautilusoder oder verwenden .nautilus /foo/baremacsfmemacsfm /foo/bar

Jetzt müssen wir dies als Standard-Dateimanager festlegen. Installieren Sie exo-utilsmit

sudo apt-get install exo-utils

und lass es laufen

exo-preferred-applications

Es öffnet sich ein neues Fenster. Gehen Sie zu Dienstprogramme -> Dateimanager -> Andere und geben Sie dort / usr / bin / emacsfm "% s" ein.

Du kannst Chrome herunterladen und wenn show in folderdu darauf klickst, wird der Emacs dired geöffnet :-)

Aktualisieren:

Bildbeschreibung hier eingeben Referenz: https://help.ubuntu.com/community/DefaultFileManager

ChillarAnand
quelle
Anand, es funktioniert .. aber es öffnet jedes Mal ein neues Emacs-Fenster .. Es ist gut, Emacsclient zu verwenden, der in einer bereits geöffneten Emacs-Sitzung einen neuen Puffer öffnet ....
Madhavan
Ich denke, die vorherige Antwort befasst sich mit diesem Punkt ...
Madhavan
4

Obwohl die Frage speziell für Linux bestimmt ist, habe ich sie für Windows herausgefunden (da dies mich dazu veranlasste, herauszufinden, wie ich es für mich selbst tun kann).

Interessanterweise müssen Sie Dired nicht aufrufen, sondern übergeben einfach einen Ordner als Datei. Dies spart viel Ärger unter Windows, da %1es c:\Users(zum Beispiel) vorübergeht und unterbrochen wird, \Uwenn es in der evalAnweisung enthalten ist, während es durch Übergeben als Datei ordnungsgemäß analysiert wird.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="Dired"

[HKEY_CLASSES_ROOT\Drive\shell\Dired]
@="Open in Dired"

[HKEY_CLASSES_ROOT\Drive\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"

[HKEY_CLASSES_ROOT\Directory\shell]
@="XYplorer"

[HKEY_CLASSES_ROOT\Directory\shell\Dired]
@="Open in XYplorer"

[HKEY_CLASSES_ROOT\Directory\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"

Referenz: Sieben Foren - Ändern des Standarddateimanagers

Jonathan Leech-Pepin
quelle
-4

Sie können Ranger verwenden. Sie können jedoch xmonad für die Verwendung von Emacs als Windows-Standard konfigurieren, wenn Sie die Sitzung starten

Mizhac
quelle
7
Bitte erweitern Sie Ihre Antwort, um sie in sich geschlossen zu machen.
Dan