Comment définir emacs comme gestionnaire de fichiers par défaut?


19

Certains programmes comme Firefox ont des boutons qui, lorsqu'ils sont cliqués, ouvrent un gestionnaire de fichiers pour parcourir les fichiers. Comment puis-je faire pour ouvrir dans emacs avec le mode dired sur Debian Linux?


9
Quel est votre système d'exploitation?
Drew

1
J'utilise Debian Jessie.
godblessfq

Réponses:


17

En fonction de votre environnement de bureau, la méthode pour définir une application par défaut peut différer. Cela dit, de nombreux environnements de bureau respectent les associations dans ~/.local/share/applications/mimeapps.list, où vous pouvez configurer une association pour les types application/x-directoryet / ou inode/directory.

Mon mimeapps.listressemble à ceci maintenant:

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

Dans le même répertoire, j'ai un fichier appelé emacs-dired.desktopavec le contenu suivant:

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

Lorsque ma longue instance d'Emacs exécute un serveur ( M-x server-start) et que je clique sur, disons, l'icône de dossier dans la liste des téléchargements dans Icecat, un nouveau diredtampon est ouvert.

Cela fonctionne réellement pour moi maintenant. Merci d'avoir posé la question --- sinon je n'aurais pas mis cela en place.


6

Voici comment faire emacs comme gestionnaire de fichiers par défaut dans ubuntu.

Nous devons d'abord écrire un script qui servira de gestionnaire de fichiers.

#!/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()

Enregistrez-le comme emacsfmdans /usr/bin/. Maintenant dans le terminal au lieu d'utiliser nautilusou nautilus /foo/bar, nous pouvons utiliser emacsfm ou emacsfm /foo/bar.

Maintenant, nous devons définir cela comme gestionnaire de fichiers par défaut. Installer en exo-utilsutilisant

sudo apt-get install exo-utils

et l'exécuter

exo-preferred-applications

Il ouvre une nouvelle fenêtre. Allez dans Utilitaires -> Gestionnaire de fichiers -> Autre et entrez / usr / bin / emacsfm "% s" dedans.

Vous pouvez obtenir des téléchargements chrome et si vous cliquez show in folderdessus, il ouvrira emacs dired :-)

Mise à jour:

entrez la description de l'image ici Référence: https://help.ubuntu.com/community/DefaultFileManager


Anand, cela fonctionne .. mais il ouvre une nouvelle fenêtre emacs à chaque fois .. il est bon d'utiliser emacsclient qui ouvrira un nouveau tampon dans une session emacs déjà ouverte ....
Madhavan

je pense que la réponse précédente répond à ce point ...
Madhavan

4

Bien que la question soit spécifiquement pour Linux, je suis allé la chercher pour Windows (car cela m'a incité à trouver comment le faire moi-même).

Chose intéressante, vous n'avez pas à invoquer Dired, passez simplement un dossier en tant que fichier. Cela permet d'économiser beaucoup de tracas sous Windows car %1passera c:\Users(par exemple) et s'arrêtera \Us'il est inclus dans l' evalinstruction, tandis que le passer en tant que fichier le analysera correctement.

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"

Référence: Seven Forums - Comment changer le gestionnaire de fichiers par défaut


-4

Vous pouvez utiliser Ranger. Cependant, vous pouvez configurer xmonad pour utiliser emacs par défaut de Windows lorsque vous démarrez la session


7
Veuillez développer votre réponse pour la rendre autonome.
Dan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.