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-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.
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:
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 %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"