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?
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?
Antworten:
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-directory
und / oder inode/directory
Typen einrichten können.
Mein mimeapps.list
sieht 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.desktop
mit 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-start
ausführt ( ) und ich auf das Ordnersymbol in der Liste der Downloads in Icecat klicke, wird ein neuer dired
Puffer geöffnet.
Das funktioniert jetzt tatsächlich für mich. Vielen Dank für die Frage --- sonst hätte ich das nicht eingerichtet.
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 emacsfm
in /usr/bin/
. Jetzt können wir im Terminal anstelle von nautilus
oder oder verwenden .nautilus /foo/bar
emacsfm
emacsfm /foo/bar
Jetzt müssen wir dies als Standard-Dateimanager festlegen. Installieren Sie exo-utils
mit
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 folder
du darauf klickst, wird der Emacs dired geöffnet :-)
Aktualisieren:
Referenz: https://help.ubuntu.com/community/DefaultFileManager
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 %1
es c:\Users
(zum Beispiel) vorübergeht und unterbrochen wird, \U
wenn es in der eval
Anweisung 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"